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 主机ファイルを编集してサーバー移行时の动作确认を行う