我想使用sed替换文本文件,但要替换序列。
example.txt:
1. 2000000
2. 2000000
3. 2000000
4. 2000000
我想要一个类似的结果:
1. 2000000
2. 1900000
3. 1800000
4. 1700000
我有这种肮脏的方式:
for i in {2000000..1700000..-100000}; do sed -i -e "0,/2000000/! {0,/2000000/ s/2000000/$i/}" example.txt; done
还有更好的主意吗?
最佳答案
使用awk可能会更容易:
awk '{sub("2000000",2000000-(100000*c++))}1' file
第一行未定义计数器
c
,因此编号不会更改。在下一行,计数器增加,而值减小。关于linux - 如何使用sed替换与列表匹配,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52942079/