Cortar delimitado com espaço sem escape?

2

Eu tenho um arquivo com texto no formato de:

User\ Name My\ Password

Observe que esse é, na verdade, um arquivo de duas colunas, no qual as colunas contêm espaços com escape.

cut -d' ' -f2 produz Name , mas desejo produzir My Password .

É possível usar cut e delimitado apenas com base em espaços não escapados? Se não, qual comando alternativo posso usar?

    
por Philip Kirkbride 21.11.2017 / 17:48

1 resposta

2

Eu sugeriria a abordagem GNU grep :

Amostra input.txt :

User\ Name My\ Password
first\ field second\ field

Corte o segundo campo do arquivo 2 colunas :

grep -Po '[^\]\x20\K.*' input.txt

A saída:

My\ Password
second\ field

Ou o mesmo com sed :

sed 's/.*[^\]\x20\(.*\)//' input.txt

----------

A parte do padrão regex crucial é [^\]\x20 que corresponde a um espaço \x20 (código hexadecimal de espaço) se for precedida por qualquer caractere, exceto escape de barra invertida [^\]

    
por 21.11.2017 / 18:09