2010-10-19 34 views
11

Supongamos que tengo esta frase:¿Cómo seleccionar una columna dada de una línea de texto?

 
My name is bob. 

y quiero copiar la palabra "es" de esa frase en una variable. ¿Cómo accedería a esa palabra, sin saber de antemano la palabra que estoy buscando? Si sé que una palabra o cadena específica está en la tercera columna de texto en una línea de texto de cinco columnas, ¿cómo puedo tomar la palabra en la tercera columna?

Estoy usando el shell bourne.

+0

Tome un vistazo a SED y AWK a hacer este tipo de procesamiento . –

Respuesta

16
word=$(cut -d ' ' -f 3 filename) 

nos da el tercer campo de cada línea (en este caso hay 1). -d se utiliza para especificar el espacio como un delimitador. $() captura la salida, luego la asignamos a la variable word.

+0

No creo que se requiera la cola de lo que significaba el OP, la línea principal de números (ahora eliminados) se espaciaba para indicar columnas en lugar de contenido. –

+0

@Roger, creo que tienes razón. Lo he actualizado –

6

puede utilizar cualquiera cut, awk, etc.

Ejemplo:

awk '{print $3}' my_file.txt 
0
sentence='My name is bob.' 
set -- $sentence 
echo $3 

o

sentence='My name is bob.' 
set -- $sentence 
shift 2 # or use a variable 
echo $1 
Cuestiones relacionadas