如何替换 sed 中的特定行位置?

如何替换 sed 中的特定行位置?

我需要能够使用 sed (或其他任何东西)来替换具体的线位置,我正在 Google 但尚未找到任何东西。

* 更新 *

这是我迄今为止想到的……

sed 's|\(^.\{67\}\).\{1\}||g' $$

但这会删除从开始到位置 67+1 的所有内容,我想要仅有的67+1 号位置将消失..

答案1

我一开始以为你会需要这个。它将匹配 66 个字符\(.\{66\}\)并将其存储在 中\1,将接下来的两个字符放入\(.\{2\}\)\2,其中的所有其他字符\(.*\)\3替换\1\2\3\1\3,从而消失你不想要的 2 个字符。

sed 's/^\(.\{66\}\)\(.\{2\}\)\(.*\)/\1\3/'

然后我想起了这一点。这将'..'用2 个字符替换''第 67 个字符。

sed 's/..//67'

相关内容