行が特定の単語で始まる場合にのみ、ファイルのフィールドを印刷します。

行が特定の単語で始まる場合にのみ、ファイルのフィールドを印刷します。

次のファイルがあります。


   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を使用する必要が==ある正規表現ではなく、文字通りの同等性が検証されるため、アプローチは機能しません。~

おすすめ記事