我的文件 backup.xml 中有这行大约 500 次
my-company-review/</link>
有没有办法通过命令行、perl 等在 word 之后的行中添加一个数字review
。例如,像这样:
my-company-review1/</link>
my-company-review2/</link>
my-company-review3/</link>
在此先感谢您的帮助!
我的文件 backup.xml 中有这行大约 500 次
my-company-review/</link>
有没有办法通过命令行、perl 等在 word 之后的行中添加一个数字review
。例如,像这样:
my-company-review1/</link>
my-company-review2/</link>
my-company-review3/</link>
在此先感谢您的帮助!
这是一种方法:
perl -i -wpe ' BEGIN { $count = 1; }
++$count
if s{(my-company-review)(/</link>)}{$1$count$2};
' backup.xml
(免责声明:未经测试。)
您可以使用 awk:
awk 'gsub("/</link>", NR "/</link>")' infile
或 perl:
perl -ne 's:/</link>:$./</link>:; print' infile
为什么不使用 Perl,正如我对您的上一个问题所建议的那样。再一次,这是一种 hack 解决方案,只有在每行最多有一个替换时才有效……但这是一个快速丢弃的程序。
perl -e '$count=1; foreach (<>) { s/(my-company-review)(\/<\/link>)/$1$count$2/ && $count++; print; }'
一个额外的循环将在一行上进行多次替换:
perl -e '$count=1; foreach (<>) { while(s/(my-company-review)(\/<\/link>)/$1$count$2/) {$count++;} print; }'
那个 awk 解决方案看起来好多了 =)