如何从流中的每一行文本中删除第一个单词?
例如,
$ cat myfile
some text 1
some text 2
some text 3
我想:
$ cat myfile | magiccommand
text 1
text 2
text 3
我将如何使用 Bash 来解决这个问题?我可以使用awk '{print $2 $3 $4 $5 ....}'
,但这很麻烦,并且会导致所有空参数都有额外的空格。我在想 sed 可能能够做到这一点,但我找不到任何这样的例子。
根据您的示例文本,
cut -d' ' -f2- yourFile
应该做的工作。
那应该工作:
$ cat test.txt
some text 1
some text 2
some text 3
$ sed -e 's/^\w*\ *//' test.txt
text 1
text 2
text 3
这是使用的解决方案awk
awk '{$1= ""; print $0}' yourfile
运行这个:
sed "s/^some\s//g" myfile
你甚至不需要使用管道。
要删除第一个单词,直到空格,无论存在多少空格,请使用:sed 's/[^ ]* *//'
例子:
$ cat myfile
some text 1
some text 2
some text 3
$ cat myfile | sed 's/[^ ]* *//'
text 1
text 2
text 3