2

我正在发送命令cut,但似乎没有任何事情发生。

该命令的输出如下所示:

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

我正在尝试使用以下命令从所有行(从第 2 行开始)中提取第 1,2 列:

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

4

3 回答 3

4

使用多个空格作为分隔符时,剪切效果不佳。改用 awk

mycommand | awk 'NR>1{print $1,$2}' 
于 2013-08-26T17:18:51.180 回答
3

使用 tr -s 将重复空格转换为单个空格。现在可以在单个空格分隔列的情况下使用 cut。

mycommand | tr -s ' ' | cut -d' ' -f1,2
于 2013-08-26T17:51:55.810 回答
3

如果使用多个空格作为分隔符并且列位置是固定的,则可以使用带有 cut 的列号:

mycommand | cut -c1-27

或者您可能会丢失前面的空格:

mycommand | cut -c5-27

即使您的字段具有嵌入的空格,这也将起作用。awk如果您在字段中嵌入了空格,则该方法将失败。

于 2013-08-26T18:04:17.940 回答