在 awk 中打印

在 awk 中打印

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

相关内容