Bash 删除文本流中的第一个单词
如何从流中的每行文本中删除第一个单词 比如说,Bash 删除文本流中的第一个单词,bash,sed,awk,cat,Bash,Sed,Awk,Cat,如何从流中的每行文本中删除第一个单词 比如说, $ 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可能可以做到这一点,但我找不到任何这样的例子。运行以下命令: sed "s/^some\s//
$ 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可能可以做到这一点,但我找不到任何这样的例子。运行以下命令:
sed "s/^some\s//g" myfile
您甚至不需要使用管道。应该可以:
$ cat test.txt
some text 1
some text 2
some text 3
$ sed -e 's/^\w*\ *//' test.txt
text 1
text 2
text 3
根据您的示例文本
cut -d' ' -f2- yourFile
应该做这项工作。这里有一个使用
awk
awk '{$1= ""; print $0}' yourfile
要删除第一个单词,请使用:
sed's/[^]**/'
例如:
$ cat myfile
some text 1
some text 2
some text 3
$ cat myfile | sed 's/[^ ]* *//'
text 1
text 2
text 3
这将在每行的开头留下一个空格注意:我试图用它来删除
历史记录的输出上的索引,但在历史记录的开头它不起作用,因为较小的数字前面有空格充当分隔符。@JasonDoucette不同的输入格式可能需要不同的解决方案有些关联: