在特定行的开头插入字符

在特定行的开头插入字符

假设我有文件:

% This is first line
% This is second line

This is content

% This is the end

如何%在已经以 开头的每一行的开头插入一个字符%

结果:

%% This is first line
%% This is second line

This is content

%% This is the end

答案1

sed

sed 's/^%/%%/' infile

如果开头为,则将开头替换%%%行。
^一个锚点,指向行的开头;其中有$一个指向行尾。
要将更改写入文件就地,请使用-i选项sed

还有另一种方法比上面的替换速度更快(如果您的文件足够大,您会注意到差异)

sed '/^%/ s/^/%/' infile

答案2

这可以通过sedand获得awk(尽管还有其他方法)

  1. 使用sed
    sed -i 's/^%/%&/' <your_file>
  2. 使用awk
    awk '/^%/ { $0 = "%" $0 } 1' <your_file>

相关内容