Cut

用未轉義的空間分隔?

  • November 21, 2017

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

User\ Name My\ Password

請注意,這實際上是一個 2 列文件,其中列包含轉義空格。

cut -d' ' -f2生產Name但我想生產My Password

是否可以cut僅基於非轉義空格使用和分隔?如果不是,我可以使用什麼替代命令?

我建議使用 GNU**grep**方法:

樣品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(空格十六進制程式碼),如果它前面有任何字元,除了轉義反斜杠[^\\]

引用自:https://unix.stackexchange.com/questions/406073