Vi
在 vi 中搜尋和替換控製字元(^@、^M、^I….)
/proc/some_proc_id/cmdline
我從我的 ubuntu 機器中複製了這一行,java^@-jar^@/usr/lib/selenium/selenium-server-standalone.jar^@-port^@4444^@-trustAllSSLCertificates^@
不知何故,空格字元
^@
在 vi 中表示為。我嘗試使用命令將它們替換為空格字元,:%s#^@# #g
但它說,
pattern not found ^@
.如何替換特殊字元,尤其是那些以克拉符號開頭的字元?
不知何故,空格字元
^@
在 vi 中表示為。不是
vi
那樣做的。儘管您在 shell 中鍵入命令行,參數之間有空格,但命令行實際上是內部離散的字元串序列,而不是一個用空格分隔的長字元串。在啟動命令之前,shell 將命令行分成單獨的參數字元串。在 C 中,字元串以 NUL 字元結尾,顯示為
^@
.如何替換特殊字元,尤其是那些以克拉符號開頭的字元?
為了鍵入這些字元,您必須在它們前面加上
Control
-v
以表示下一個字元。例如在這種情況下:
Control
-v
後跟Control
-@
。引入文字下一個字元的特殊字元通常是
Control
-v
但它實際上是可配置的。鍵入stty -a
以找出它的設置。lnext
在輸出中尋找。