打印第一列

Rhe*_*hea 6 command-line text-processing

我想打印这个文件的第 1 列。我使用了这个命令:awk '{print $1}'但它只打印了第一列的第一个单词。

数据

ABC transporters                             ABC transporters
Alanine, aspartate and glutamate metabolism  Alanine, aspartate 
alpha-Linolenic acid metabolism              alpha-Linolenic acid metabolism
Aminoacyl-tRNA biosynthesis                  Aminoacyl-tRNA biosynthesis
Amino sugar and nucleotide sugar metabolism  Amino sugar and nucleotide
Arachidonic acid metabolism                  Arachidonic 
Run Code Online (Sandbox Code Playgroud)

输出:

ABC
Alanine,
alpha-Linolenic
Aminoacyl-tRNA
Amino
Arachidonic
Run Code Online (Sandbox Code Playgroud)

期望输出:

ABC transporters
Alanine, aspartate and glutamate metabolism
alpha-Linolenic acid metabolism 
Aminoacyl-tRNA biosynthesis 
Amino sugar and nucleotide sugar metabolism 
Arachidonic acid metabolism 
Run Code Online (Sandbox Code Playgroud)

mur*_*uru 14

由于这似乎是一个固定宽度的列,因此您可以只cut输入相应的字符。最宽的列Alanine, aspartate and glutamate metabolism似乎有 44 个字符宽,因此:

$ cut -c1-44 foo
ABC transporters
Alanine, aspartate and glutamate metabolism
alpha-Linolenic acid metabolism
Aminoacyl-tRNA biosynthesis
Amino sugar and nucleotide sugar metabolism
Arachidonic acid metabolism
Run Code Online (Sandbox Code Playgroud)


Rav*_*ina 14

我可以看到的是,您的列由两个空格分隔。

所以awk

awk -F '\\s\\s' '{print $1}'
Run Code Online (Sandbox Code Playgroud)