Ubuntu 终端将行号 N 从一个文件复制到另一个文件

Ubuntu 终端将行号 N 从一个文件复制到另一个文件


我想知道是否可以将一个文本文件的第 7,8,9 行和第 17,18 行复制到另一个文本文件?

提前感谢!

答案1

您可以使用sed(流编辑器)按数字选择性地打印行,例如

sed -n '7,9p;17,18p' oldfile > newfile

答案2

你应该不是依赖于文件中行的顺序,因为它可能会改变(如果它是系统文件、临时文件等,并且它已更新)。
您可以使用 grep 或其变体之一,例如 rgrep:

rgrep WordOrRegularExpressionToMatch "Name_of_the_file"

然后,在您看到打印机的行数正确后,您可以使用:

rgrep WordOrRegularExpressionToMatch "Name_of_the_file" >> "Name_of_the_second_file"

它会附加rgrep 打印的行被复制到第二个文件;要覆盖,请使用“>”而不是“>>”。
如果你真的想提取一组精确的线条您可以使用“sed”:

sed -n -e 7,9p -e 17,18p "Name_of_the_file"

(这是两个独立的间隔)

所以...

sed -n -e 7,9p -e 17,18p "Name_of_the_file" > "Another_file_to_overwrite"

>> 附加> 复制并粘贴此行:它将完成这项工作。:-)
男人“将为您提供更多帮助。
祝您有美好的一天!

答案3

如果您知道源文件中有多少行(wc -l),您可以这样做...假设有 12000 行,并且您希望新文件中有 2000 到 7000 行(总共 5000 行)。

cat myfile | tail -10000 | head -5000 > newfile

读取最后 10k 行,然后读取前 5k 行。

相关内容