用未转义的空间进行剪切分隔?

用未转义的空间进行剪切分隔?

我有一个文件,其文本格式为:

User\ Name My\ Password

请注意,这实际上是一个 2 列文件,其中列包含转义空格。

cut -d' ' -f2产生Name,但我想产生My Password.

是否可以cut仅基于非转义空格进行使用和分隔?如果没有,我可以使用什么替代命令?

答案1

我建议GNUgrep方法:

样本input.txt

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

从中剪切第二个字段2 列文件:

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

输出:

My\ Password
second\ field

或者与sed

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

----------

关键的正则表达式模式部分是,如果[^\\]\x20空格\x20(空格十六进制代码)前面有任何字符(转义反斜杠除外),则匹配该空格[^\\]

相关内容