2012-10-03 21 views
5
grep -A 26 "some text" somefile.txt | 
    awk '/other text/ { gsub(/M/, " "); print $4 }' | 
    sort -n -r | uniq | head -1 

devolverá el más grande en una lista extraída de un archivo de texto grande, pero ¿cómo almaceno el resultado como una variable?salida del almacén de bash como variable

Respuesta

7

Uso command substitution:

my_var=$(grep -A 26 "some text" somefile.txt | 
    awk '/other text/ { gsub(/M/, " "); print $4 }' | 
    sort -n -r | uniq | head -n1) 

Además, para la portabilidad, sugeriría utilizando siempre -n1 para el argumento de head. Me he encontrado con un par de encarnaciones donde usar -1 no funciona.

0

me gustaría sugerir

variable_name=$(grep -A 26 "some text" somefile.txt | 
    awk '/other text/ { gsub(/M/, " "); print $4 }' | 
    sort -nru | head -1) 
1

Para los casos no anidados volver cotizaciones también funcionará:

variable=`grep -A 26 "some text" somefile.txt | 
awk '/other text/ { gsub(/M/, " "); print $4 }' | 
sort -nru | head -1`