Bash “剪切”命令似乎不起作用

Bash “剪切”命令似乎不起作用,bash,parsing,cut,Bash,Parsing,Cut,我正在向cut发送命令,但似乎什么也没发生 命令的输出如下所示: Name File Info OS 11 FileName1 OS1 12 FileName2 OS2 13 FileName3 OS3 我正在尝试使用以下命令从所有行(从第2行开始)提取列1,2: my_命令| cut-f1,2,输出与原始完全相同 Cut在使用多个空格作为分隔符时表现不佳。改用awk mycommand

我正在向
cut
发送命令,但似乎什么也没发生

命令的输出如下所示:

     Name    File Info     OS
     11      FileName1     OS1
     12      FileName2     OS2
     13      FileName3     OS3
我正在尝试使用以下命令从所有行(从第2行开始)提取列1,2:


my_命令| cut-f1,2
,输出与原始完全相同

Cut在使用多个空格作为分隔符时表现不佳。改用awk

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

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

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

如果分隔符使用多个空格,且列位置固定,则应使用带有剪切的列编号:

mycommand | cut -c1-27
或者,您可能会因为以下原因而失去前面的空间:

mycommand | cut -c5-27

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

Nice one。我不知道您可以按字符数进行剪切。
cut
命令按字面意思使用字段分隔符。如果有多个连续的空格或制表符,则会将每个空格或制表符视为空字段的分隔符。