Remove First Word in text stream

╄→гoц情女王★ 提交于 2019-12-03 19:06:58

问题


How would I remove the first word from each line of text in a stream? i.e.

$cat myfile 
some text 1
some text 2
some text 3

what I want is

$cat myfile | magiccommand 
text 1
text 2
text 3

How would I go about this using bash? I could use awk '{print $2 $3 $4 $5 ....}' but that's messy and would result in extra spaces for all null arguments. I was thinking that sed might be able to do this, but I could not find any examples of this. Any help is appreciated! Thanks!


回答1:


based on your example text,

cut -d' ' -f2- yourFile

should do the job.




回答2:


That should work:

$ cat test.txt
some text 1
some text 2
some text 3

$ sed -e 's/^\w*\ *//' test.txt
text 1
text 2
text 3



回答3:


Here is a solution using awk

awk '{$1= ""; print $0}' yourfile 



回答4:


run this sed "s/^some\s//g" myfile you even don't need to use a pipe




回答5:


To remove the first word, until space no matter how many spaces exist, use: sed 's/[^ ]* *//'

Example:

$ cat myfile 
some text 1
some  text 2
some     text 3

$ cat myfile | sed 's/[^ ]* *//'
text 1
text 2
text 3


来源:https://stackoverflow.com/questions/7814205/remove-first-word-in-text-stream

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!