サブディレクトリに移動し、特定のファイルに対してawkスクリプトを実行します。

サブディレクトリに移動し、特定のファイルに対してawkスクリプトを実行します。

私は多くのサブディレクトリ(words/blabla、words/blabla)を含む../wordsというディレクトリを持っています。各サブディレクトリには、2 種類のファイル (.*1.txt) と (.*2.txt) が含まれています。私にとって必要なのは、これらのファイルごとにAWKスクリプトを実行することです。

似たようなものはありませんか?

for d in words/*
do
    for f in .*[0-9].txt
    do
    awk -f script.awk ${f}
done
done

答え1

これは働きます:

for f in words/*/.*[12].txt
do
    awk -f script.awk "$f"
done

答え2

bash次の最新のシェルを使用するか、zsh次のものを使用できます。

for i in words/*/*{1,2}.txt; do awk -f script.awk "$i"; done

何らかの理由で互換性が必要な場合は、/bin/sh少し冗長で読みにくいこのソリューションを使用できます。

for i in words/*/*1.txt words/*/*2.txt; do awk -f script.awk "$i"; done 

答え3

この試みfor d in words/*; do for f in ./words/$d/*{0..9}.txt; do awk -f script.awk $f; done

関連情報