用未轉義的空間進行剪切分隔?

用未轉義的空間進行剪切分隔?

我有一個文件,其文字格式為:

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

相關內容