便利なUnix コマンドメモ

複数ファイルの部分ファイル名の変更

  • rename コマンドが最強
    • MacOS ではこのコマンドは入っていないので Homebrew 経由でインストール
brew install rename
  • 使い方は簡単
  • ファイル名の一部△2に変更
    rename 's//2/' *.txt 
  • あるファイル名の文言を削除
    rename 's/別日実施//' *.txt 

複数ファイルの複数箇所からの移動

find . -name "複数フォルダの grep パターン" -type f -exec cp {} (コピー先) \;
例:Eで始まるすべてのフォルダ内のすべてのファイルを temp に移動
find . -name "E*" -type f -exec cp {} /temp \;
  • あるファイル名の一部を検索・一括抽出・移動
 find . -type f -name 'GREP_PATTERN' -exec mv -i {} ./tmp  \; 
  • '*➁.txt'が探したいパタン。これにマッチする下位ディレクトリのすべてのファイルを tmp に移動
  • find の後の "." は current directory の意味

grep する必要がない場合(2022/12)

find . -mindepth 2 -type f -print -exec mv {} . \;
  • この "-mindepth" が1は同じレベル、2は1つ下、など指定できる
  • mv を cp にすれば移動ではなく複写

ファイル拡張子の一括変換

for fname in *; do mv $fname ${fname%}.txt; done
最初の * は拡張子がなしの場合
何かすでについているのであれば、*.out などを指定しておき、その次のコマンドで変更後の拡張子を指定する

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2022-12-29 (木) 09:45:04 (83d)