剪切文件的特定行并将其粘贴到另一个文件的末尾

剪切文件的特定行并将其粘贴到另一个文件的末尾

假设我想从一个文件中剪切多行(例如,行 1-500、1029-1729 和 2696-3446),将值附加到另一个文件(output.txt)的末尾,并从第一个文件中删除这些值。源文件有 9277 行,我想剪切其中一些行,从原始文件中删除它们并将它们粘贴到另一个文件中。可以通过命令行实现吗?

答案1

使用 sed,您可以将一组行写入不同的文件,同时从当前文件中删除它,如下所示:

sed -i -e 'N, M { w output.txt
d }' input.txt

其中NM是行号。-i选项sed保存对源文件的更改,此处d命令删除这些行。同时,w output.txt导致所选行写入output.txt。是的,这是两个单独的行:sed要求w命令的文件名是直到换行

因此你可以做类似的事情:

cmd=' { w output.txt
d }'
sed -i -e "1,500 $cmd" -e "1029,1729 $cmd" -e "2696,3446 $cmd" input.txt

答案2

可能的 !

  1. 将行复制到dest.file重定向到grep 'pattern' src.file >> dest.file

  2. 删除src.filesed -i '/pattern/d' src.file

相关内容