当前位置: 首页>>技术教程>>正文


在文本文件的每一行前添加##

问题描述

我想在常规文本文件的所有行中添加哈希。我对终端和GUI的使用都很好-我只需要完成它即可。

最佳方案

您可以使用sed来做到这一点:

sed -i.bak 's/^/##/' file

这用##代替了行的开头(^)。

使用-i.bak开关,sed编辑文件in-place,但创建扩展名为.bak的备份副本。

次佳方案

这是使用perl解决此问题的方法

perl -e 'while (<>) {print "##$_"}' < infile > outfile

第三种方案

在此期间:

gawk -i inplace '{print "##"$0}' infile

这对GNU awk 4.1.0+使用(相对较新的)inplace editing plugin

第四种方案

这是bash的方式:

while read -r; do printf '##%s\n' "$REPLY"; done < infile > outfile

(在bash shell中,不带其他参数运行read -r的工作方式类似于IFS= read -r REPLY。)

从风格上讲,这受beav_35’s perl solution的启发,我承认对于大型文件,它的运行速度可能要快得多,因为在文本处理方面,perl可能比shell效率更高。

第五种方案

sed -i不是POSIX-standard,因此,如果您是纯粹主义者,则需要使用ed

printf ",s/^/##/\nw\nq" | ed -s file.txt

第六种方案

这是比其他地方更简单的perl方法:

perl -pi -e 'print "##"' YOURFILEHERE

这(ab)利用了perl -p执行-e中给出的命令后打印行的事实。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/9560.html,未经允许,请勿转载。