Вырезать, разделив неэкранированным пробелом?

Вырезать, разделив неэкранированным пробелом?

У меня есть файл с текстом в формате:

User\ Name My\ Password

Обратите внимание, что на самом деле это файл из двух столбцов, в которых столбцы содержат экранированные пробелы.

cut -d' ' -f2производит Name, но я хочу производить My Password.

Можно ли использовать cutи разделять только на основе неэкранированных пробелов? Если нет, какую альтернативную команду я могу использовать?

решение1

Я бы предложил GNUgrepподход:

Образец input.txt:

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

Вырежьте 2-е поле из2-колоночныйфайл:

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

Выход:

My\ Password
second\ field

Или то же самое сsed:

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

----------

Самая важная часть шаблона регулярного выражения — это [^\\]\x20соответствие пробелу \x20(шестнадцатеричному коду пробела), если ему предшествует любой символ, кроме экранирующего обратного слеша.[^\\]

Связанный контент