Cut
用未轉義的空間分隔?
我有一個文件,其文本格式為:
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
(空格十六進制程式碼),如果它前面有任何字元,除了轉義反斜杠[^\\]