Grep - 出力行の列3に文字列が含まれています。

Grep - 出力行の列3に文字列が含まれています。

特定の文字列を含む行を出力しようとしています。

行の例:

Column1:Column2:Column3 + ID
Column1:Column2:Column3 - ID
Column1:Column2:Column3

希望の出力:

Column1:Column2:Column3 + ID

頑張る-

awk -F: '$3 == + ID' < file.txt > out.txt

他の入力なしで列3から正確な「+ ID」を取得するため、出力は返されません。

今私はできることを知っています

grep -f " + ID" <file.txt >out.txt

ただし、+IDが列3にない場合は、+IDを含むすべての行が出力されます。例は次のとおりです。

出力:

Column1:Column2 + ID:Column3

+IDは列3ではなく列2にあります。

これで、特定の.txtファイルだけでなくすべてのファイルを検索しながら、ディレクトリ内でもこれを行いたいと思います。

ベストアンサー1

文字列一致ではなく、フィールドの末尾に固定された正規表現一致を使用できます。

awk -F: '$3 ~ /+ ID$/' < file.txt
Column1:Column2:Column3 + ID

または行の末尾に固定するには、以下を使用しますgrep

grep '+ ID$' < file.txt
Column1:Column2:Column3 + ID

おすすめ記事