BASICを含む動的に生成されたファイルの名前変更

BASICを含む動的に生成されたファイルの名前変更

exaxtの名前はわかりませんが、常にBASICという単語を含むファイルの名前を変更するには、mvシェルコマンドの名前変更をどのように使用できますか?

rename Ex2WebR1_0WEBSHOP01_005443_B_BASIC.XML BASIC.XML

このようにしてみましたが、うまくいきません

mv 's/.*_BASIC/BASIC/g' BASIC.*

ご協力ありがとうございます

答え1

現在のディレクトリにそのようなファイルが1つしかないと仮定すると、次のようになります。

mv -- *_BASIC.XML BASIC.XML

絶対に解析しないでください出力

答え2

正規表現の試みが正しい方向に進んでおり、以下を使用する場合は少し変更が必要ですrename

rename 's/.*_BASIC/BASIC/g' *_BASIC*

これは、ディストリビューションに互換性のあるバージョンがインストールされていると仮定していますrename(私の経験では、Red Hatとそれに関連するディストリビューションはそうではありません)。

また、同じ拡張子を持つ一致するファイルが複数ないため、名前の競合が発生する可能性があるとします。

このバリエーションは、拡張子が異なる一致するファイルが複数存在し、一度の操作で名前を変更したい場合に便利です。それ以外の場合は、次を使用することをお勧めします。https://unix.stackexchange.com/a/590037/40482

関連情報