Considere este fragmento:
X=$(grep -m1 'some-pattern' some-file | sed -n 's/.* //p')
Quiero poner la última palabra en una variable si alguna condición de patrón coincide con líneas en un archivo de texto arbitrario
Mi problema es que la variable X
tiene CR o LF o CRLF al final, dependiendo del archivo de origen, del que quiero deshacerme, ya que interfiere con la operación posterior que pretendo hacer.
Incluso probé algo como:
X=$(grep -m1 'some-pattern' some-file | sed -n 's/.* \([A-Za-z]\+\)/\1/p')
por lo tanto, se espera que la sed
salida esté limitada [A-Za-z]+
pero aún existen estos molestos bytes dentro de la variable X.
¿Cómo puedo deshacerme de él, sin utilizar demasiada código como ver lo que son bytes al final con xxd
entonces cut
y similares complicaciones?
X
CR
, pero habrá unLF
. Me costó mucho entender lo que quieres de la pregunta, espero que mi edición haga lo que quieras.grep/sed
soluciónawk
(lo cual no entiendo), y si no, lo usaré. Gracias