我有一個文件,其文字格式為:
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
(空格十六進位代碼),如果它前面有除轉義反斜杠之外的任何字符[^\\]