剪切命令似乎不起作用

时间:2013-08-26 17:16:14

标签: bash parsing cut

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

命令的输出如下所示:

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

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

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

3 个答案:

答案 0 :(得分:4)

切割在多个空格作为分隔符时表现不佳。请改用awk

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

答案 1 :(得分:3)

使用tr -s将重复空格转换为单个空格。现在cut可用于单个空格分隔分隔列的位置。

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

答案 2 :(得分:3)

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

mycommand | cut -c1-27

或者你可能会失去前方空间:

mycommand | cut -c5-27

即使你的字段有嵌入空格,这也会有效。如果在字段中嵌入了空格,awk方法将失败。