ファイルの3番目の列で複数のパターンを検索し、行全体を印刷する必要があります。
以下でこれを使用していますが、一致する行全体を印刷するにはどうすればよいですか?
awk '{print $3}' file | egrep -w "S|M|D"
答え1
awk
あなたの要件にはではないが必要だと思いますgrep
。これらの文字のいずれかに一致する3番目の列で行全体を印刷するには、次の手順を実行する必要があります。
awk '$3 ~ /^(S|M|D)$/' file
答え2
S
スペースで区切られた3番目のフィールドが正確に、またはM
インラインを抽出するには、D
次のいずれかを使用します。
awk '$3 ~ /^[SMD]$/' file
または、正規表現一致ではなく文字列一致を使用してください。
awk '$3 == "S" || $3 == "M" || $3 == "D"' file
そのブロックがない条件は、そのブロックがまさにそのブロックであるかのように動作します{ print }
。
答え3
awk '$3 ~ /^S/||/^M/||/^D/{print $0}' filename