Eu tenho um arquivo com texto no formato de:
User\ Name My\ Password
Observe que este é na verdade um arquivo de 2 colunas, onde as colunas contêm espaços de escape.
cut -d' ' -f2
produz Name
, mas eu quero produzir My Password
.
É possível usar cut
e delimitar apenas com base em espaços sem escape? Caso contrário, que comando alternativo posso usar?
Responder1
Eu sugeriria GNUgrep
abordagem:
Amostra input.txt
:
User\ Name My\ Password
first\ field second\ field
Corte o segundo campo de2 colunasarquivo:
grep -Po '[^\\]\x20\K.*' input.txt
A saída:
My\ Password
second\ field
Ou o mesmo comsed
:
sed 's/.*[^\\]\x20\(.*\)/\1/' input.txt
----------
A parte crucial do padrão regex é [^\\]\x20
que corresponde a um espaço \x20
(código hexadecimal de espaço) se for precedido por qualquer caractere, exceto a barra invertida de escape[^\\]