赞
踩
在使用 awk
时,如果你想要获取除了某一列之外的所有其他数据,可以通过设置字段分隔符(Field Separator,FS
)和输出字段分隔符(Output Field Separator,OFS
),然后打印除了指定列之外的所有字段来实现。
以下是一个基本的 awk
命令示例,它演示了如何获取除了第二列之外的所有数据:
awk '{for(i=1;i<=NF;i++) if(i!=2) printf "%s%s", $i, (i==NF?"\n":" ")}' 文件名
这个命令的解释如下:
for(i=1;i<=NF;i++)
:遍历所有字段。if(i!=2)
:如果字段号(i
)不等于2(即不是第二列),则执行打印操作。printf "%s%s", $i, (i==NF?"\n":" ")
:打印字段值,并根据是否是最后一列来决定是否添加换行符或空格。假设你有一个名为 data.txt
的文件,内容如下:
- apple,banana,cherry
- dog,elephant,fox
- apple,giraffe,hippo
如果你想要获取除了第二列("banana" 和 "elephant")之外的所有数据,可以使用以下命令:
awk '{for(i=1;i<=NF;i++) if(i!=2) printf "%s%s", $i, (i==NF?"\n":" ")}' data.txt
执行后,输出将是:
- apple cherry
- dog fox
- apple hippo
这个输出显示了除了第二列之外的所有数据。
NF
是 awk
的内置变量,代表当前记录的字段数。printf
命令中的格式化字符串。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。