注释文本文件中的所有行?

ste*_*wpf 3 vim editors vi nano

在文本文件中,我需要通过添加“;”来注释掉所有行 作为每行的第一个字符。有什么好的方法可以做到这一点?我想到了 Vim 的可视块模式,但我找不到“全选”选项,手动标记几百行也不是很好;-) 知道吗?我手头有 nano、vi 和 vim,我更喜欢其中之一来完成这项任务。

ire*_*ses 12

在 Vim 中,您也可以在所有行的开头进行全局替换:

:%s/^/;/
Run Code Online (Sandbox Code Playgroud)


jw0*_*013 11

在 Vim 中: gg0<ctrl-v>GI;<Esc>

  • @gorkypl:在插入模式下,您只会在第一行看到您的编辑。一旦你点击 &lt;kbd&gt;Esc&lt;/kbd&gt;,它会将编辑应用到整个块。 (3认同)

JRF*_*son 6

对于像这样的简单任务,您可以使用sedperl。对于较小的占用空间,请sed用于此简单任务:

sed -i.old -e 's/^/;/' file
Run Code Online (Sandbox Code Playgroud)

这会将原始文件的副本保留为“*.old”并添加一个“;” 在每一行的开头。

如果您的sed版本不是 GNU 版本(许多 Unix 变体就是这种情况),您很可能没有就地 ( -i) 选项。要么简单地重定向到一个新的输出文件,要么使用 Perl 作为perl -pi.old -e 's/^/;/' file