好吧,看来我找不到做我需要的方法。
假设我有一个这样的文本文件 A
(freqBiasL2[27])
(SatBiasL1[27])
(defSatBiasL2_L1[27])
(defSatBiasSlope[27])
(defSatBiasSigma[27])
(freqBiasL2[28])
(SatBiasL1[28])
(defSatBiasL2_L1[28])
(defSatBiasSlope[28])
(defSatBiasSigma[28])
(freqBiasL2[29])
(SatBiasL1[29])
(defSatBiasL2_L1[29])
(defSatBiasSlope[29])
(defSatBiasSigma[29])
Run Code Online (Sandbox Code Playgroud)
等等。我想更改 [] 括号之间的索引,使每个索引 i = i+3。
我尝试了 for 循环和 sed 的组合,但不起作用
for i in {27..107..1}
do
i_new=$((i+3))
sed -e 's/\['$i'\]/\['$i_new'\]/' prova.txt
done
Run Code Online (Sandbox Code Playgroud)
问题是它会将前 27 个更改为 30,但在接下来的交互中,它将找到 2 个索引为 30 的块(更改后的块和原始块)。
如何在不覆盖已经更改的索引的情况下执行此操作?
好的,谢谢,我编辑了我的问题以进行改进:如果我有 2 个索引,我该如何做类似的事情:
(freqBiasL2[32][100])
(SatBiasL1[32][101])
(defSatBiasL2_L1[32][102])
(defSatBiasSlope[32][103])
(defSatBiasSigma[32][104])
Run Code Online (Sandbox Code Playgroud)
我只想增加第二个索引而忽略第一个?