awk仅保留逗号分隔字段上的第一个和最后一个值
嗨,我试图在我的数据上只保留逗号分隔字段的第一个和最后一个值。下面是我的输入数据的样子awk仅保留逗号分隔字段上的第一个和最后一个值,awk,Awk,嗨,我试图在我的数据上只保留逗号分隔字段的第一个和最后一个值。下面是我的输入数据的样子 a 1 y 1,2,4,3,6,2,1 b 2 y 3,56,3,2,1 c 3 n 4,3,2,1,4 我只想将第一个和最后一个值保留在我的数据的第四个coulmn上,以便我的数据如下所示: a 1 y 1,1 b 2 y 3,1 c 3 n 4,4 有人能帮我怎么做吗?谢谢你awk-F,{printf
a 1 y 1,2,4,3,6,2,1
b 2 y 3,56,3,2,1
c 3 n 4,3,2,1,4
我只想将第一个和最后一个值保留在我的数据的第四个coulmn上,以便我的数据如下所示:
a 1 y 1,1
b 2 y 3,1
c 3 n 4,4
有人能帮我怎么做吗?谢谢你awk-F,{printf”%s,%s\n“,$1,$NF}”
应该做这项工作 试试这个:
awk -F, -vOFS=, '{print $1,$NF}' input.txt
输入字段分隔符-F,
输出字段分隔符-vOFS=,
第一个字段$1
最后一个字段$NF
awk '{size = split($4,numbers,",")} {print $1" "$2" "$3" "numbers[1]","numbers[size]}'
这将第四个字段拆分为一个数组,将大小保存为
size
,打印前3个字段,然后打印数字数组的第一个和最后一个元素。如果其他字段可以包含逗号:
$ awk '{sub(/,.*,/,",",$NF)}1' file
a 1 y 1,1
b 2 y 3,1
c 3 n 4,4
如果没有:
$ awk '{sub(/,.*,/,",")}1' file
a 1 y 1,1
b 2 y 3,1
c 3 n 4,4
你问了几个问题,它们之间的差别很小。如果你得到了所有的答案,你学到了什么?我想说的不多。事实上,我测试了printf,但得到了一个奇怪的行为,但这是我学期的错。编辑;-)