【问题标题】:how to copy lines 10 to 15 of a file into another file, in unix?如何在unix中将文件的第10到15行复制到另一个文件中?
【发布时间】:2017-11-15 02:36:42
【问题描述】:

我想将一个文件的第 10 到 15 行复制到 Unix 中的另一个文件中。

我有文件 file1.txtfile2.txt

我想将第 10 行到第 15 行从 file1.txt 复制到 file2.txt

【问题讨论】:

标签: linux unix


【解决方案1】:

然后用shell打开一个终端

sed -n '10,15p' file1.txt > file2.txt

简单易行。

如果您想追加到末尾而不是擦除file2.txt,请使用>> 进行重定向。

sed -n '10,15p' file1.txt >> file2.txt
                          ^^

AWK 也是一个强大的命令行文本操作器:

awk 'NR>=10 && NR<=15' file1.txt > file2.txt

【讨论】:

  • 如果file2.txt 有一些内容,我们想在file2.txt的开头插入@iBug
  • @JigarGandhi "Insert at start" 真的是另一个话题。最好的办法是将输出保存到 file3.txt,然后附加原始文件 (cat file2.txt &gt;&gt; file3.txt)。
【解决方案2】:

作为对上一个答案的补充,您可以使用以下 3 种解决方案之一。

sed

仅打印范围内的行并将其重定向到输出文件

sed -n '10,15p' file1.txt > file2.txt

头尾组合

使用 head 和 tail 剪切文件并在将输出重定向到文件之前仅获取所需的范围

head -n 15 file1.txt | tail -n 6 > file2.txt

awk

仅打印范围内的行并将其重定向到输出文件

awk 'NR>=10 && NR<=15' file1.txt > file2.txt

【讨论】:

  • 头部/尾部只是工作的一种成就,实际上并不是一个好的答案。 AWK 解决方案非常好。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-05-19
  • 2013-02-09
  • 2014-12-05
  • 2019-06-23
  • 2019-04-11
  • 2012-11-07
  • 2013-02-02
相关资源
最近更新 更多