0 command-line sed text-processing
我有一个文本文件,./.需要用0|0.
该文件太大,无法在 Gedit 中打开并手动完成。
我可以使用sed吗?
是的。在这种情况下,选择不同的分隔符(如 )很有用_,这样您就不必转义斜杠:
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/– 替换A为B,与 相同s_A_B_,ssAsBs或者您可以想象的任何内容:
可以使用除反斜杠或换行符以外的任何字符代替斜杠来分隔 BRE 和替换。[来源]
s/A/B/g-取代A的B,做它globally,所以别站首次发现后做(每行!)
\./\.-文字串./.,点需要被用反斜线,因为他们的一部分基本的正则表达式和其他人会采取任何字符,匹配a/a,a/b,///等0|0 – 文字字符串 0|0是的,您可以使用 sed 来做到这一点。
你需要逃脱.并/带着\.
sed -i.bak 's/\.\/\./0|0/g' file
Run Code Online (Sandbox Code Playgroud)
-i.bak将使 sed 就地编辑文件,但创建一个扩展名为 .bak 的备份文件。
末尾g的 表示“全局”--> 替换所有出现的情况。