先頭に「@」を含むすべての行が必要な別のリストがたくさんあります。現在ファイルを処理するために使用していますsh list_of_commands
。これを行うより賢い方法があるかどうか疑問に思います。
1)すべてのコマンドラインを1つずつ作成せずにすべてのファイルを一括処理する方法は?
2)入力ファイル名にサフィックスを追加して出力ファイル名を指定する方法はありますか?
とても感謝しています!
ベストアンサー1
次のスクリプトは、スクリプトが実行されているディレクトリ内のすべてのファイルをクロールし、そのファイルに1つずつコマンドを適用します。それはあなたが望むものですか?
#! /bin/sh
for file in *
do
if [[ -f "$file" ]]; then
# process the file with name in "$file" here
fi
done
上記のループでは、次のステートメントを使用して要求に応じてファイル名を変更できます。
mv "$file" "$(echo" $file" | sed -n "s|^\(.*\)\(\.[0-9a-zA-Z]*\)$|\1_su\2|p")"
ファイル拡張子サフィックスの前に、ファイル名の末尾にサフィックス "_su"を置きます。ファイルに拡張子がない場合は、ファイル名の末尾にサフィックスが付きます。