我想选择在N个变量之后出现的全部或一组变量。
例如:我有一个包含逗号分隔的多行文件。如何选择变量号后面的所有变量。 4并将它们输出到另一个文件?
我有一个文件test1.txt
:
A, B, C, D, E
A, B, C, D, E, F, G
A, B, C, D
并希望output.txt
中的以下输出:
E
E, F, G
(Nothing), as Line 3 had only 4 variables.
答案 0 :(得分:1)
您可以使用cut
:
cut -d, -f5- test1.txt > output.txt
说明:
- cut根据-d
参数分解块中的每一行。在我们的例子中,逗号。
- 使用-f
我们指出必须打印哪些块。 -f1
将打印第一个,-f-3
会打印出前三个。使用-f5-
,您可以从第5页打印到最后。
答案 1 :(得分:0)
使用sed:
sed -e '/^\([^,]*,\s*\)\{4\}/!d;s/^\([^,]*,\s*\)\{4\}//' test1.txt
编辑:只是看着它并意识到它可以简化(忘记了t分支命令):
sed -e 's/^\([^,]*,\)\{4\}//;tX;d;b;:X;s/^\s*//' test1.txt
并且隔离一个值(在这种情况下为17)而不是运行到行尾:
sed -e 's/^\([^,]*,\)\{16\}//;tX;d;b;:X;s/^\s*\([^,]*\).*/\1/' test1.txt