用一个带bash的新行替换文件中的两行

sdm*_*_gr 3 bash replace

我试图用一个新行替换文件中的两行:

foo1.txt
  aaa   aaa
  bbb   bbb
  ccc   ccc
  ddd   ddd
  bbb   bbb
  ddd   ddd
Run Code Online (Sandbox Code Playgroud)

替换文件后应该看起来像这样

foo1.txt
  aaa   aaa
  eee   eee
  ddd   ddd
  bbb   bbb
  ddd   ddd
Run Code Online (Sandbox Code Playgroud)

有没有办法使用sed或其他命令在文件夹的所有文件中替换它

我一直在尝试用sed但没有任何成功: sed 's/bbb\tbbb\nccc\tccc/eee\teee/g' foo*.txt

Wil*_*ell 8

有很多方法可以解释您的问题.如果您尝试更换固定位置的线,例如第2行和第3行,请执行以下操作:

sed '2d; 3s/.*/newtext/'
Run Code Online (Sandbox Code Playgroud)

如果要替换匹配的行和以下行:

sed '/pattern/{ N; s/.*/newtext/; }'
Run Code Online (Sandbox Code Playgroud)

要替换第二行与模式匹配的两个连续行:

sed -n '$p; N; /pattern/d; P; D'
Run Code Online (Sandbox Code Playgroud)