2013-08-26 64 views
1

我正在管理一个命令到cut并且没有任何事情发生。切割命令似乎没有工作

该命令的输出如下所示:

 Name File Info  OS 
    11  FileName1  OS1 
    12  FileName2  OS2 
    13  FileName3  OS3 

我试图从所有行提取柱1,2(从行2)使用以下:

my_command | cut -f1,2和输出与原始完全相同。

+0

'cut'命令非常字面地使用字段分隔符。如果您有多个连续的空格或制表符,则会将每个空格或制表符分隔为空字段的分隔符。 – lurker

回答

3

切不会以多空格作为分隔符。使用awk代替

mycommand | awk 'NR>1{print $1,$2}' 
3

使用tr -s将重复空格转换为单个空格。现在可以在单个空格分隔列的地方使用切割。

mycommand | tr -s ' ' | cut -d' ' -f1,2 
3

如果有多个空格用来分隔符和列的位置是固定的,你可以使用列数与切:

mycommand | cut -c1-27 

或者你也可以用失去了前面的空格:

mycommand | cut -c5-27 

即使您的字段有嵌入空格,这也可以工作。如果您的字段中包含空格,则awk方法将失败。

+0

不错的一个。我不知道你可以减少字符数。 – user000001