awkで印刷

awkで印刷

次のレコードを含むファイル番号.txtがあります。

番号.txt:

123456,2711448,1,14-Feb-15 09:24:25,14-Jul-15 09:24:25,120,20150814163821,13-Aug-15 09:24:25,,,12-Sep-15 09:24:25,,,12-Oct-15 09:24:25,,,11-Nov-15 09:24:25,,,11-Dec-15 09:24:25,,,10-Jan-16 09:24:25,,,,,,,,,,,,12-Sep-15 09:24:25,Y

ここで、awkコマンドで次の条件を使用し、条件が一致した場合はすべての列を印刷したいと思います。

awk -F"," '{ if($6 == 120) print }' number.txt

条件が一致したら、最後の列にNを印刷したいと思います。

希望の出力は次のとおりです。

出力:

123456,2711448,1,14-Feb-15 09:24:25,14-Jul-15 09:24:25,120,20150814163821,13-Aug-15 09:24:25,,,12-Sep-15 09:24:25,,,12-Oct-15 09:24:25,,,11-Nov-15 09:24:25,,,11-Dec-15 09:24:25,,,10-Jan-16 09:24:25,,,,,,,,,,,,12-Sep-15 09:24:25,N

ベストアンサー1

印刷ジョブに必要な文字列を追加すると、これを行うことができます。コードでは次のようになります。

awk -F"," '{OFS=FS}{ if($6 == 120){$NF="N"; print $0}}' number.txt

ここで{OFS=FS}出力ファイルをソートするために、awkコードは条件が真であることを確認し、そうであれば操作を実行し、最初に最後のフィールドを変更してレコード全体を印刷します$NF"N"print $0

おすすめ記事