同じ2文字間のテキストが削除されるように、フォルダ内のすべてのファイルの名前を変更します。

同じ2文字間のテキストが削除されるように、フォルダ内のすべてのファイルの名前を変更します。

私のフォルダには、次のような名前のファイルがたくさんあります。

abc.test.txt
edf.main.txt
num2.tb.doc
file3.map.csv
file4.test.csv

間にあるテキストが削除されるようにファイルの名前を変更し.、上記のファイルの名前を次のように変更しようとします。

abc.txt
edf.txt
num2.doc
file3.csv
file4.csv

可能ですか?

似たようなものが見つかりましたが、私のニーズに合っていませんでした。

文字や文字列を削除して複数のファイルの名前を変更するには?

ベストアンサー1

zsh では、次を使用します。zmv。実行するautoload -U zmvか、「/.zshrc」に入れてから

zmv '(*).*(.*)' '$1$2'

または

zmv -w '*.*.*' '$1.$3'

または、次のprenameコマンド(各ファイル名に式を適用するPerlスクリプト)がある場合:

prename 's/\..*\././' *.*.*

シェルを使用して、各POSIXシステムで利用可能なツールのみを使用してください。リングパラメータ拡張名前の一部を抽出します。

for x in *.*.*; do
  mv -- "$x" "${x%.*.*}.${x##*.}"
done

おすすめ記事