所以正文如下:
1a fost odata
2un balaur
care fura
mere de aur
并在使用此命令后:
sed 's/\([a-z]*\)\(.*\)\( [a-z]*\)/\1 ... \2/' filename
結果是這樣的:
... 1a fost
... 2un balaur
care ...
mere ... de
我知道這\1是針對第一[a-z]*個子運算式等等,但我就是想不通..另外,第一個子運算式和最后一個子運算式有什么區別?為什么前面有空格[a-z]?
uj5u.com熱心網友回復:
第一個[a-z]*匹配行上的第一個字母序列。量詞匹配 0 個或多個重復,因此*它也可以匹配一個空字串。
在第一行,它匹配之前的空字串1a。在第二行,它匹配之前的空字串2un。第三行匹配care,第四行匹配mere。這些比賽將進入捕獲組 1。
.*匹配零個或多個任何字符,因此這將跳過行中間的所有內容。這些匹配進入捕獲組 2。
[a-z]*匹配后跟零個或多個字母的空格。.*當到達該行的最后一個空格時,需要該空格來停止匹配。這些比賽進入捕獲組 3。
替換是捕獲組 1 和 2,...在它們之間。這是行首的字母,...,然后是除最后一個單詞之外的所有內容。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/485018.html
上一篇:Windows命令提示符/powershell中的通配模式
下一篇:根據其他列的值創建一個新列
