我尝试修改文件中的行,其中每行是一个命令,我需要提供连续数字作为不同行的参数。
BestFirst - > BestFirst -D 5 -N 5
BestFirst - > BestFirst -D 5 -N 10
BestFirst - > BestFirst -D 5 -N 15
...
BestFirst - > BestFirst -D 10 -N 15
...
BestFirst - > BestFirst -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
这或多或少会返回正确的内容,但不会修改文件本身。
如何以正确的方式修改文件?
答案 0 :(得分:2)
您只是忘了在sed命令中确定输出文件。请尝试以下方法:
counter=5; while read line; do echo $line | sed -e "s/BestFirst/BestFirst -D 5 -N $counter/" >> result.csv; counter=$[ counter+5 ]; done < attribute_selectors_cfssubeval_bestfirst_various_parameters.csv
结果将在result.csv文件中
编辑:如果您想修改您正在阅读的同一文件:我认为这不是一个好主意。如果希望文件具有完全相同的名称,可以在删除源后重命名结果文件。