我有一个包含许多行的文件,想要用Linux命令仅显示每行的第一个单词。
我该如何做到这一点?
您可以使用awk
命令:
awk '{print $1}' your_file
这将“打印”your_file
中的第一列($1
)。
cat
;我想至少展示一下如何在管道命令中使用它(但我确实提到了这对于此目的来说有些过度kill =P)。 - newfurniturey尝试使用coreutils cut
来执行此操作:
cut -d' ' -f1 file
我看到已经有了答案。但你也可以使用sed完成这个任务:
sed 's/ .*//' fileName
awk '{if ($1 !="") print $1}' your_file
如果您也关心空字段的可能性,即以空格开头的行,则需要更强大的解决方案。我不太擅长使用awk来处理这种情况,但是一个简短的Python脚本可以解决问题,例如:
>>> import re
>>> for line in open('your_file'):
... words = re.split(r'\s', line)
... if words and words[0]:
... print words[0]
\s
则方便地解决了问题:grep -Po '^\s*\K\S+' …
- bobbogo...或在Windows上(如果您有GnuWin32 grep):
grep -Eo "^[^ ]+" file