如何使用 sed、cut 或 awk 只保留每行中的第一个单词?

如何使用 sed、cut 或 awk 只保留每行中的第一个单词?

我有一个很大的列表,格式如下:

info1 info2 info3 info4

每行都有这四个字段。如何使用正则表达式删除每行除第一个单词之外的所有单词?

答案1

假设用空格分隔单词,则不需要使用正则表达式来仅提取第一个以空格分隔的单词。相反,使用cut空格作为分隔符:

cut -d ' ' -f 1 file

您还可以使用awk,它默认使用连续的空格或制表符作为其字段分隔符,仅打印每行的第一个字段。这是另一种不需要使用正则表达式的情况。

awk '{ print $1 }' file

-F ' '如果您只想使用单个空格作为分隔符,请与上述一起使用。

如果你真的需要使用正则表达式(例如,为了让某位老师高兴),然后使用替换命令sed

sed 's/ .*//' file

此命令删除(不替换)从第一个空格字符到每行末尾的所有内容。

相关内容