我有一个包含以下记录的文件 number.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
打印整个记录。