我有以下格式的文本檔案:
\Hollands\\\\\\hOlAnz/hOlAns\\\\\\\\
\Hollandse\\\\\\hOlAns@\\\\\\\\
\Hollywood\\\\\\hOliwud/hOliwut/hOliwYd\\\\\\\\
...
我想讓它看起來像這樣??:
\Hollands\\\\\\h O l A n z / h O l A n s\\\\\\\\
\Hollandse\\\\\\h O l A n s @\\\\\\\\
\Hollywood\\\\\\h O l i w u d / h O l i w u t / h O l i w Y d\\\\\\\\
我該怎么辦?提前謝謝了。
我嘗試使用 sed:
sed 's/\{\\\\\\\{1\}\)/\1 /g'
因為我期望\1 /在{1\}(每個字符)之后插入(一個空格),在 6 個重復的\s 之后。但得到錯誤說
RE error: invalid repetition count(s)
uj5u.com熱心網友回復:
sed 是s/old/new/對單個字串執行簡單操作的正確工具,對于除此之外的任何內容(例如,隔離字串的一部分,然后根據需要對該字串的部分執行進一步操作),只需使用 awk。
將 GNU awk 用于第三個引數 match() 和 gensub():
$ awk 'match($0,/(.*\\{6}.)(.*)(\\{8})/,a) { $0=a[1] gensub(/./," &","g",a[2]) a[3] } 1' file
\Hollands\\\\\\h O l A n z / h O l A n s\\\\\\\\
\Hollandse\\\\\\h O l A n s @\\\\\\\\
\Hollywood\\\\\\h O l i w u d / h O l i w u t / h O l i w Y d\\\\\\\\
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/343348.html
