如何通过单个命令将文件中删除的行打印到新文件中?

ima*_*ast 2 linux sed text-processing

例如:
文件 A 包含 20 行,我删除了前 10 行sed -i 1,10d A.txt

我应该写什么命令来将这 10 行删除的行打印到文件 B 中?

我尝试过sed -i 1,10d A.txt >> B.txt哪个不起作用。

Kus*_*nda 5

使用sedsed脚本

1,10{
    w otherfile
    d
}
Run Code Online (Sandbox Code Playgroud)

这会将第 1 行到第 10 行写入文件otherfile,同时从输入中删除它们。

对原始文件进行就地编辑(sed此处使用 GNU):

sed -i '1,10{w B.txt
        d}' A.txt
Run Code Online (Sandbox Code Playgroud)

需要换行符来分隔文件名。或者,

sed -i -e '1,10{w B.txt' -e 'd}' A.txt
Run Code Online (Sandbox Code Playgroud)