grep
現在のテキスト文字列を検索し、awk
必要な変数をフィルタリングするために使用するデータを含むいくつかのtxtファイルがあります。文字列がファイル内で繰り返されるので、現在このコマンドを使用して目的の文字列を抽出しています。
grep 'text' *.txt | awk ' NR==1 {print $2 } ' > outputfile
問題は、フォルダ内の複数のファイルを繰り返し、抽出された変数を各ファイルの単一の出力ファイルに書きたいということです。この質問に対する回答は以前にすでに回答されていることがわかっていますが、これは初めてであり、実装するのが困難です。
どんなフィードバックでも大変感謝します!
ベストアンサー1
各反復の出力を別の出力ファイルにリダイレクトできるように、各ファイルのファイル名を保持しながらbash内のファイルを繰り返します。
たとえば、次のようになります(テストされていません)。
PREFIX="/tmp/outputs" # define where to store all the outputs
mkdir -p "${PREFIX}" # make sure the outputs dir exists
for FILE in *.txt # get the file names you want to work on
do
# use ${PREFIX}/${FILE} to redirect output to a
# file that's associated with the input
grep 'text' "${FILE}" | awk ' NR==1 {print $2 } ' > "${PREFIX}/${FILE}"
done