ストリーム内の各テキスト行から最初の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がこれを行うことができると考えていましたが、この例は見つかりませんでした。どんな助けも大歓迎です!ありがとう!
サンプルテキストに基づいて、
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
パイプを使用する必要さえない
最初のWordを削除するには、スペースがいくつ存在してもスペースがなくなるまで、sed 's/[^ ]* *//'
例:
$ cat myfile
some text 1
some text 2
some text 3
$ cat myfile | sed 's/[^ ]* *//'
text 1
text 2
text 3