ループを使用してフォルダ内の複数のファイルにawkスクリプトを適用する方法

ループを使用してフォルダ内の複数のファイルにawkスクリプトを適用する方法

フォルダ内のすべてのファイルにawkスクリプトを適用しようとしていますが、以下を使用しています。

for %%i in (*.txt) do (awk -f NormalizeFiles.awk "%%i" > new\"%%i")

ところで、次のようなメッセージを受け取りました。

Syntactic error near the unexpected element '('

私は何が間違っているのかわかりません。

ベストアンサー1

awkを介して入力ファイルを実行し、結果を別のファイル名に保存したいようです。非常に具体的なファイル命名が必要ない限り、次のように動作します。

for i in *.txt; do
    awk -f NormalizeFiles.awk $i > $i.out
done

あなたの質問にbashタグが付けられていますが、誰かが指摘したように、あなたの構文は括弧を誤って使用するなどbashではありません。 %%構文は正しく使用されておらず、目標とは関係がないようですが、確認する必要があります。http://www.tldp.org/LDP/abs/abs-guide.pdfもっと知りたいなら。

おすすめ記事