【发布时间】:2014-02-15 13:19:48
【问题描述】:
我尝试修改文件中的行,其中每一行都是一个命令,我需要提供连续的数字作为不同行的参数。
最佳第一 --> 最佳第一 -D 5 -N 5
最佳第一 --> 最佳第一 -D 5 -N 10
最佳第一 --> 最佳第一 -D 5 -N 15
...
最佳第一 --> 最佳第一 -D 10 -N 15
...
最佳第一 --> 最佳第一 -D 100 -N 100
我尝试从 -N 选项开始,但没有成功:
counter=5; while read line; do echo $line | sed -e "s/BestFirst/BestFirst -D 5 -N $counter/"; counter=$[ counter+5 ]; done < attribute_selectors_cfssubeval_bestfirst_various_parameters.csv
这或多或少会返回正确的内容,但不会修改文件本身。
如何正确修改文件?
【问题讨论】:
-
原始文件真的只是重复多次的字符串“BestFirst”吗?使用适当的
awk脚本从头开始生成整个文件似乎比在输入文件的每一行单独调用sed更快。 -
@chepner 我很确定你是对的,我看到了一些解决 awk 类似问题的方法。我只是不太了解 awk,无法使用它。