Tengo un archivo con texto en el formato de:
User\ Name My\ Password
Tenga en cuenta que en realidad se trata de un archivo de 2 columnas, donde las columnas contienen espacios con escape.
cut -d' ' -f2
produce Name
pero quiero producir My Password
.
¿Es posible utilizar cut
y delimitar únicamente en función de espacios sin escape? Si no, ¿qué comando alternativo puedo usar?
Respuesta1
Yo sugeriría GNUgrep
acercarse:
Muestra input.txt
:
User\ Name My\ Password
first\ field second\ field
Corta el segundo campo de2 columnasarchivo:
grep -Po '[^\\]\x20\K.*' input.txt
La salida:
My\ Password
second\ field
O lo mismo consed
:
sed 's/.*[^\\]\x20\(.*\)/\1/' input.txt
----------
La parte crucial del patrón de expresiones regulares es [^\\]\x20
que coincide con un espacio \x20
(código hexadecimal de espacio) si está precedido por cualquier carácter, excepto la barra invertida de escape.[^\\]