Linuxシェルスクリプト(bash)で次のことを行う方法を探しています:
ランダムな順序で名前が付けられ、サーバー上の共有に配信された一連のファイルがあります。それらはすべて、ファイル内に特定の識別子名が含まれています。
fileabc123.xml
PCVendor
filedef456.xml
単語を含む単語を含むPrinterVendor
これらのファイルを適切な方法で処理するには、ファイルの名前をファイル内の単語を含む新しいファイル名に変更する方法/コマンドの組み合わせを見つける必要があります。
fileabc123.xml
に名前を変更するPCVendor-file123abc.xml
filedef456.xml
必要があります に名前を変更する必要がありますPrinterVendor-file456def.xml
これは、シェル スクリプト内から自動的に行う必要があります。
私は以下を見ていました:
for i in `ls *.xml`;
do
cat *.xml | grep "PCVendor"
mv $i PCVendor-$i
done
ただし、これにより、各ファイルの名前が対応する単語に変更されるのではなく、使用可能なすべてのファイルの名前が PCVendor-$i に変更されることがわかっています。
よろしくお願いします。
ありがとう、エクォート