2011-10-18 42 views
21

Jak usunąć pierwsze słowo z każdego wiersza tekstu w strumieniu? tjUsuń pierwsze słowo w strumieniu tekstu

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

co chcę jest

$cat myfile | magiccommand 
text 1 
text 2 
text 3 

Jak bym go o to przy użyciu bash? Mógłbym użyć awk '{print $ 2 $ 3 $ 4 $ 5 ....}', ale jest to niechlujne i spowoduje dodatkowe spacje dla wszystkich zerowych argumentów. Myślałem, że sed może być w stanie to zrobić, ale nie mogłem znaleźć żadnych przykładów tego. Każda pomoc jest doceniana! Dzięki!

Odpowiedz

48

oparte na przykład tekst,

cut -d' ' -f2- yourFile 

powinno załatwić sprawę.

+0

Idealnie! Dziękuję Ci. – Trcx

4

run to sed "s/^some\s//g" myfile nawet nie trzeba używać rury

+0

To właśnie Szukałem ... fajnego – Satish

8

To powinno działać:

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

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

Oto rozwiązanie przy użyciu awk

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

Aby usunąć pierwsze słowo, aż do miejsca bez względu na to, ile miejsca istnieją, zastosowanie: sed 's/[^ ]* *//'

Przykład:

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

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