我有一个文件,其文本格式为:
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
(空格十六进制代码)前面有任何字符(转义反斜杠除外),则匹配该空格[^\\]