
次のファイルがあります。
…
LINK=dummy 172.17.100 => 10.218.11 [PATH=/etc]
FILE=hosts 172.17.100 => 10.218.11 [PATH=/etc]
FILE=network 172.17.100 => 10.218.11 [PATH=/etc/sysconfig]
LINK=empty 172.17.100 => 10.218.11 [PATH=/etc]
FILE#TEST 172.17.100 => 10.218.11 [PATH=/etc/sysconfig]
…
行が単語で始まる場合にのみ、最初のフィールドと5番目のフィールドを印刷する方法はFILE
?
単語はFILE
行の先頭に直接来ることも、行の空白またはTABの後に来ることもできます。
私が期待していたものの例
FILE=hosts [PATH=/etc]
FILE=network [PATH=/etc/sysconfig]
FILE#TEST [PATH=/etc/sysconfig]
私はこれを試しましたが、うまくいきません
awk '$1 == "^[[:blank:]]*FILE*" && '{print $1" "$5}' file
答え1
awk '$1 ~ /^FILE/ { print $1 " " $5 }'
.exeを使用する必要が==
ある正規表現ではなく、文字通りの同等性が検証されるため、アプローチは機能しません。~
答え2
この試み:
awk '/^ *FILE=/{print $1, $5}'
または
awk '/^[[:blank:]]*FILE=/{print $1, $5}'