linux命令行:剪切(带空字段)

我有一个文件(input.txt)与由空格分隔的数据列。 我想获得第9列的数据和以后。

通常我会这样做:

cut -d " " -f 9- input.txt 

但是,在这个文件中,有时候这些字段被多个空格隔开(每个行/列的空格数量也不相同)。 剪切似乎并不把连续的空格视为一个分隔符。

我该怎么做呢?

 sed -r 's/ +/ /g' input.txt|cut -d " " -f 9- 

您可以使用sed用一个空格替换n个空格:

 sed -r 's/\ +/\ /g' input.txt | cut -d ' ' -f 9- 

只要确保你的列之间没有任何标签。