ディレクトリ内の複数のファイル名を変更する - sed または rename コマンドを使用します。

ディレクトリ内の複数のファイル名を変更する - sed または rename コマンドを使用します。

さまざまなsedmvおよびrenameコマンドを試しましたが、まだファイルの名前を変更することはできません。 50以上のファイルがあります。見つけたコマンドを試してみました。助けてください。

元のファイル名:

PAGES_TEST1_SART1.XML
PAGES_TEST2_SART2.XML
PAGES_TEST3_SART3.XML
PAGES_TEST4_SART4.XML

到着

PAGES_PROD1_SART1.XML
PAGES_PROD2_SART2.XML
PAGES_PROD3_SART3.XML
PAGES_PROD4_SART4.XML

答え1

使用真珠rename(すべてのオペレーティングシステムで動作):

rename -n 's/TEST/PROD/g' ./*TEST*.XML

スイッチの削除-n、別名。試運転あなたの試みが満足なとき実際の名前に変更

答え2

renameどちらを使用していますか?そして

$ rename --version
rename from util-linux 2.39.3

次から始めましょう:

$ ls -1
PAGES_TEST_SART1.XML
PAGES_TEST_SART2.XML
PAGES_TEST_SART3.XML
PAGES_TEST_SART4.XML
PAGES_TEST_SART5.XML
PAGES_TEST_SART6.XML
PAGES_TEST_SART7.XML
PAGES_TEST_SART8.XML
PAGES_TEST_SART9.XML

あなたはできます:

$ rename TEST PROD *

そして得る:

$ ls -1
PAGES_PROD_SART1.XML
PAGES_PROD_SART2.XML
PAGES_PROD_SART3.XML
PAGES_PROD_SART4.XML
PAGES_PROD_SART5.XML
PAGES_PROD_SART6.XML
PAGES_PROD_SART7.XML
PAGES_PROD_SART8.XML
PAGES_PROD_SART9.XML

答え3

たぶんこの行に沿って(bashの場合):

for f in \`ls | grep PAGES_TEST\`; do mv $f $(echo $f | sed 's/TEST/PROD/'); done

最後にチェックマークを参照してください。

関連情報