Bashでawkコマンドを使用する際に問題があります。変数を含むパターンを探したいが機能しません。この行にどのような問題があるのか教えてください。
awk -F" " "/$PWD/ {print $1,$3}" file.txt
答え1
二重引用符を使用したため、すべての$
変数はawkに達する前にbash拡張されます。最初の質問は{ print $1, $3 }
次のとおりです{ print , }
。 。
次に使用したいawk構文は次のとおりです/<regular expression>/ { <action> }
。正規表現は引用符なしのスラッシュを許可しませんが、$PWD
確かに一部含まれています。 2番目の質問です。
次のように試すことができます。
"/${PWD//\//\\/}/ { print \$1, \$3 }"
/
これを行うには、bashがinのすべての発生を置き換え、$PWD
シンボルを\/
エスケープしてbashにそのシンボルを残すようにします。$
$1
$3