0

我想选择在 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.
4

2 回答 2

1

你可以这样做cut

cut -d, -f5- test1.txt > output.txt

解释:
- cut 根据-d参数将每一行分解成块。在我们的例子中,逗号。
--f我们指出必须打印哪些块。-f1将打印第一个,-f-3将打印前三个。与-f5-您一起打印从 5 日到最后。

于 2013-03-12T17:11:03.597 回答
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
于 2013-03-12T17:11:49.133 回答