awkとgrepの後のフルライン印刷

awkとgrepの後のフルライン印刷

ファイルの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

関連情報