我有一个名为test.txt的文件,其中包含以下内容
123,2,1
我想在没有“123”的情况下打印文件的内容
我使用了以下
awk -F, '{print substr($0, index($0, $2))} text.txt'
它无法正常工作,它会打印23,2,1
但是当我为这个文本'123,5,1'运行它时,它没有问题(它打印5,1
))
答案 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
删除第一个字段,然后删除分隔符。