web-dev-qa-db-ja.com

テキストストリームの最初の単語を削除する

ストリーム内の各テキスト行から最初のWordを削除するにはどうすればよいですか?つまり.

$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 ....}'を使用できますが、これは面倒で、すべてのnull引数に余分なスペースが生じます。私はsedがこれを行うことができると考えていましたが、この例は見つかりませんでした。どんな助けも大歓迎です!ありがとう!

27
Trcx

サンプルテキストに基づいて、

cut -d' ' -f2- yourFile

仕事をする必要があります。

63
Kent

それはうまくいくはずです:

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

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

awkを使用したソリューションは次のとおりです。

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

これを実行するsed "s/^some\s//g" myfileパイプを使用する必要さえない

5
user973254

最初のWordを削除するには、スペースがいくつ存在してもスペースがなくなるまで、sed 's/[^ ]* *//'

例:

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

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