Unix,使用awk删除第一列

时间:2014-05-11 13:32:41

标签: bash unix awk

我有一个名为test.txt的文件,其中包含以下内容 123,2,1
我想在没有“123”的情况下打印文件的内容 我使用了以下
awk -F, '{print substr($0, index($0, $2))} text.txt'

它无法正常工作,它会打印23,2,1
但是当我为这个文本'123,5,1'运行它时,它没有问题(它打印5,1))

3 个答案:

答案 0 :(得分:3)

您可以使用sub()功能删除第一个字段,无论它是什么。

$ echo '123,2,1' | awk '{sub(/[^,]+,/,"")}1' 
2,1

$ echo '23,2,1' | awk '{sub(/[^,]+,/,"")}1'
2,1

答案 1 :(得分:3)

使用cut

cut -d, -f2- file

-d,使用,作为分隔符,-f2-将字段2打印到最后。

答案 2 :(得分:2)

另一个awk

echo '123,2,1' | awk -F, '{$1="";sub(/,/,"")}1' OFS=,
2,1

删除第一个字段,然后删除分隔符。