如何用“/”搜索和替换文本文件

0 command-line sed text-processing

我有一个文本文件,./.需要用0|0.

该文件太大,无法在 Gedit 中打开并手动完成。

我可以使用sed吗?

des*_*ert 6

是的。在这种情况下,选择不同的分隔符(如 )很有用_,这样您就不必转义斜杠:

sed 's_\./\._0|0_'
Run Code Online (Sandbox Code Playgroud)

例子:

$ cat test
./.
$ sed 's_\./\._0|0_' test
0|0
Run Code Online (Sandbox Code Playgroud)

添加

  • -i 就地更改文件而不是将输出打印到标准输出,
  • -i.b这样做并将备份保存.b为扩展名和
  • g到表达式的末尾以更改每行多次出现,而不仅仅是第一个 (? 's_\./\._0|0_g')。

说明

  • s/A/B/– 替换AB,与 相同s_A_B_ssAsBs或者您可以想象的任何内容:

    可以使用除反斜杠或换行符以外的任何字符代替斜杠来分隔 BRE 和替换。[来源]

  • s/A/B/g-取代AB,做它globally,所以别站首次发现后做(每行!)

  • \./\.-文字串./.,点需要被用反斜线,因为他们的一部分基本的正则表达式和其他人会采取任何字符,匹配a/aa/b///
  • 0|0 – 文字字符串 0|0

  • 正要发布相同的信息。尖桩围栏很难阅读(和调试)。 (2认同)

pLu*_*umo 5

是的,您可以使用 sed 来做到这一点。
你需要逃脱./带着\.

sed -i.bak 's/\.\/\./0|0/g' file
Run Code Online (Sandbox Code Playgroud)

-i.bak将使 sed 就地编辑文件,但创建一个扩展名为 .bak 的备份文件。
末尾g的 表示“全局”--> 替换所有出现的情况。