ファイルを入力し、ファイルを読み込み、ループで実行するbashスクリプトを実行しています。私の問題は私のawkコマンドです。なぜエラーが発生するのかわかりません。
スクリプトを実行するファイルを入力します。
./almost.sh < text.txt
スクリプトは
#!/bin/bash
while read STRING
do
echo $STRING
"awk -v RS='' -v ORS='\n\n' $STRING file.txt" >> out.txt
#grep $STRING dbutils.list.Volume.txt >> out.txt
done
私が得た結果は次のとおりです。
00061
./almost.sh: line 6: awk -v RS='' -v ORS='\n\n' 00061 list.txt: command not found
00062
./almost.sh: line 6: awk -v RS='' -v ORS='\n\n' 00062 list.txt: command not found
00091
./almost.sh: line 6: awk -v RS='' -v ORS='\n\n' 00091 list.txt: command not found
000C1
./almost.sh: line 6: awk -v RS='' -v ORS='\n\n' 000C1 list.txt: command not found
000C2
./almost.sh: line 6: awk -v RS='' -v ORS='\n\n' 000C2 list.txt: command not found
誰でもawkコマンドで私を助けることができますか?コマンドがループ内になく、一度だけ実行されると正常に動作します。
ベストアンサー1
コマンドがないため、エラーが報告されます。
"awk -v RS='' -v ORS='\n\n' $STRING file.txt"
awkとその引数(意味なし)は二重引用符の間にあり、シェルの組み合わせはコマンドであり、シェルは "awk -v RS = '' -v ORS = '\ n \ n'というファイルを探しています。 STRINGファイル.txt"。
おそらくあなたは
awk -v RS='' -v ORS='\n\n' "/$STRING/" file.txt >> out.txt