awk只保留逗号分隔字段的第一个和最后一个值

时间:2014-05-01 15:57:15

标签: 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

我只想在我的数据的第4个库存上保留第一个和最后一个值,以便我的数据看起来像这样:

a    1    y    1,1
b    2    y    3,1
c    3    n    4,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