golang ファイル名に含まれる数字を0埋めしてリームするスクリプト(powershell,python,go)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了golang ファイル名に含まれる数字を0埋めしてリームするスクリプト(powershell,python,go)相关的知识,希望对你有一定的参考价值。
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import os, re
def main():
for f in os.listdir("dummy"):
num = re.search(r"(\d+)", f).group(1)
of = "dummy/" + f
nf = "dummy/dummy{0:03d}.zip".format(int(num))
try:
os.rename(of, nf)
print(of, " >> ", nf)
except:
print(u"リネーム前と後が同じです。", nf)
if __name__ == '__main__':
main()
$dir = "dummy"
$reg = [regex]"(\d+)"
ls $dir | % {
$name = $_.Name
$num = $reg.Matches($name)[0].Value
$padnum = $num.PadLeft(3, "0")
mv "$dir\$name" "$dir\dummy$padnum.zip"
}
ls "dummy"
package main
import (
"fmt"
"io/ioutil"
"log"
"os"
"path/filepath"
"regexp"
)
func init() {
log.SetFlags(log.Ldate | log.Ltime | log.Lshortfile)
}
func main() {
dirName := "dummy"
// ディレクトリ配下のすべてのファイルの取得
files, err := ioutil.ReadDir(dirName)
if err != nil {
log.Fatal(err)
}
re := regexp.MustCompile(`(\d+)`)
for _, f := range files {
// 取得したファイルのパスの取得
fn := f.Name()
fp := filepath.Join(dirName, fn)
// ファイルの番号の取得
m := re.FindString(fn)
// 0埋めしたファイル名を取得
nfn := fmt.Sprintf("dummy%03s.zip", m)
// 0埋めファイルパスの取得
nfp := filepath.Join(dirName, nfn)
// ファイルのリネーム
err := os.Rename(fp, nfp)
if err != nil {
log.Fatal(err)
}
fmt.Println(fp, " >> ", nfp)
}
}
sh ファイル名の全角を半角に変换してMV
#!/bin/bash
set -eu
target_dir=$1
find $target_dir -type f |
while read -r f
do
nf=`echo $f | nkf -Z | sed -r 's@ - @_@g' | sed -rE 's@ | @_@g'`
mkdir -p `dirname $nf`
mv "$f" "$nf"
done
以上是关于golang ファイル名に含まれる数字を0埋めしてリームするスクリプト(powershell,python,go)的主要内容,如果未能解决你的问题,请参考以下文章
sh ファイル名の全角を半角に変换してMV
ruby xls形式のファイルを生成してみる.A0に「test。」が保存されたファイルが作られる。
Windows Updateエラー 80072EE2
ruby 写真ファイルの作成日/更新日のメタ情报をファイル名から置换する
sh あるキーワードを含むファイル,を使用しているファイルを検索する
text 主机ファイルを编集してサーバー移行时の动作确认を行う