嗨'我想在我的数据上只保留逗号分隔字段的第一个和最后一个值。以下是我的输入数据的样子
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
我只想在我的数据的第4个库存上保留第一个和最后一个值,以便我的数据看起来像这样:
a 1 y 1,1
b 2 y 3,1
c 3 n 4,4
你能帮助我怎么做吗?谢谢
答案 0 :(得分:4)
试试这个:
awk -F, -vOFS=, '{print $1,$NF}' input.txt
-F,
输入字段分隔符-vOFS=,
输出字段分隔符$1
第一场$NF
最后一个字段答案 1 :(得分:1)
awk -F, '{ printf "%s,%s\n", $1, $NF}'
应该做的工作!
答案 2 :(得分:1)
试试这个awk命令:
awk '{size = split($4,numbers,",")} {print $1" "$2" "$3" "numbers[1]","numbers[size]}'
这会将第四个字段拆分为一个数组,将大小保存为size
,打印前3个字段,然后打印numbers
数组的第一个和最后一个元素。
答案 3 :(得分:1)
如果您的其他字段可以包含逗号:
$ 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