awk:如何删除整个列的第一个和最后一个值

时间:2014-04-23 20:47:28

标签: awk

我有一个由多列组成的数据。在一列中,我想删除两个逗号,每个逗号位于整列的开头和结尾。我的数据看起来像这样:

a    ,3,4,3,2,
b    ,3,4,5,1,
c    ,1,5,2,4,5,
d    ,3,6,24,62,3,54,

有人可以教我如何删除这些数据的第一个和最后一个逗号吗?我很感激。

3 个答案:

答案 0 :(得分:4)

$ awk '{gsub(/^,|,$/,"",$NF)}1' file
a 3,4,3,2
b 3,4,5,1
c 1,5,2,4,5
d 3,6,24,62,3,54

答案 1 :(得分:3)

awk '{sub(/,/,"",$0); print substr($0,0,length($0)-1)}'  input.txt

输出:

a    3,4,3,2,
b    3,4,5,1,
c    1,5,2,4,5,
d    3,6,24,62,3,54

答案 2 :(得分:3)

您也可以使用sed执行此操作:

sed -e 's/,//' -e 's/,$//' file

那说"替换第一个逗号就行了#34;然后"用逗号代替后跟行尾的#34;。

如果您希望它写一个新文件,请执行以下操作:

sed -e 's/,//' -e 's/,$//' file > newfile.txt