2011-10-18 13 views
21

¿Cómo eliminaría la primera palabra de cada línea de texto en una secuencia? es decir,Quitar First Word en secuencia de texto

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

lo que quiero es

$cat myfile | magiccommand 
text 1 
text 2 
text 3 

¿Cómo hago para usar esta fiesta? Podría usar awk '{print $ 2 $ 3 $ 4 $ 5 ....}' pero eso es complicado y daría lugar a espacios adicionales para todos los argumentos nulos. Estaba pensando que sed podría hacer esto, pero no pude encontrar ningún ejemplo de esto. ¡Cualquier ayuda es apreciada! ¡Gracias!

Respuesta

48

basa en el texto del ejemplo,

cut -d' ' -f2- yourFile 

debe hacer el trabajo.

+0

¡Perfecto! Gracias. – Trcx

4

plazo esto sed "s/^some\s//g" myfile que incluso no es necesario utilizar un tubo de

+0

Esto es lo Estaba buscando ... genial – Satish

8

que debería funcionar:

$ 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

Aquí es una solución utilizando awk

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

Para extraer la primera palabra, hasta que el espacio no importa cuántos espacios existe, utilice: sed 's/[^ ]* *//'

Ejemplo:

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

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