如何使用sed为每行替换或添加递增编号?
Sed 命令实现文本递增替换与前缀添加
1. 将文件中5行observ1替换为observ1至observ5
使用 sed 结合行号实现递增替换:
sed -n '=' your_file | sed 'N; s/\(.*\)\nobserv1/observ\1/' > updated_file
原理:sed -n '='输出每行的行号,N将行号与对应行内容合并,最后把行号替换到observ的后缀位置。
若要直接修改原文件(建议保留备份),可使用:
sed -i.bak '=' your_file | sed -i.bak 'N; s/\(.*\)\nobserv1/observ\1/' your_file
(-i.bak会生成原文件的备份,避免误操作丢失数据)
2. 为1.txt每行添加递增编号的observ前缀
执行以下命令:
sed = 1.txt | sed 'N; s/\(.*\)\n\(.*\)/observ\1,\2/' > result.txt
原理:先通过sed =获取每行的行号,再用N合并行号与原内容,最后将行号嵌入observ前缀,与原内容用逗号分隔。
内容的提问来源于stack exchange,提问作者sprunknwn
相关产品推荐
相关产品推荐

