私はawkを使ってファイルから行を取得する単純なbashループを書いています。パターンはループ内で反復されます。私はawkの中で使用される変数に記号を追加しようとするまで、私は、WORKING PROGRAMに(最初の用語を検索し、「猫」である)シンボルと連結されたawk変数
検索パターンのためのプログラムが正常に動作する
list="cat dog"
for k in $list
do
vark="$k"
awk '/'$vark'/{print RS $0}' RS=\> FILE1 > FILE2
done
しかし、私は試すを得ることができます記号 "|"を追加する、 "<"、および "_"をループが壊れる変数に追加します。私はシンボルのために複数のセパレータを試しましたが、シンボルを変数に正しく組み込むことができませんでした。
BROKEN PROGRAM(最初の検索語である "|猫> _")
list="cat dog"
for k in $list
do
vark="$k"
varkk="|$k>_"
awk '/'$varkk'/{print RS $0}' RS=\> FILE1 > FILE2
done
はあなたの助けのためにありがとうございました!
を使用して|が' awkの正規表現で特殊文字なので、あなたがそれをエスケープする必要があります。 –