使用终端(或Shell)将文件的一部分复制/粘贴到另一个文件中

13 浏览
0 Comments

使用终端(或Shell)将文件的一部分复制/粘贴到另一个文件中

我正试图从第n行到第n+y行(比如从1000行到1000000行)复制一个.txt文件的部分内容。

我尝试过使用操作符和sed,但都失败了。这是我尝试的命令:

sed -n "1000, 1000000p" path/first/file > path/second/file

0
0 Comments

问题的原因是用户想要在终端或Shell中将一个文件的部分内容复制粘贴到另一个文件中。解决方法是使用命令行工具来完成这个任务。

如果用户知道源文件中有多少行(使用wc -l命令),可以按照以下步骤完成操作。假设源文件有12000行,用户想要将2000行到7000行的内容复制到新文件中(总共5000行):

1. 使用cat命令将源文件的内容传递给tail命令,并使用tail -10000命令读取最后10000行。

2. 使用head -5000命令从上一步骤中读取的内容中提取前5000行。

3. 使用>操作符将上一步骤中提取的内容重定向到新文件中。

即:

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

如果不知道源文件有多少行,可以简单地将head命令放在第一步执行。如果想要先复制尾部内容,可以使用tail -n +2000命令。这种方法也占用更少的缓冲空间。

某些情况下了“Useless Use of Cat”(多余使用Cat命令)的问题。原始的sed命令对这个问题来说已经很好了。

感谢大家的回答,无论是sed命令还是cat命令都可以完成这个任务。

0
0 Comments

有时候我们需要将一个文件的一部分内容复制到另一个文件中,这时可以使用终端(或Shell)来完成这个任务。然而,有些人在使用sed命令时遇到了问题,下面我们来看看这个问题的原因以及解决方法。

问题的原因是在使用sed命令时,双引号和单引号的使用上出现了问题。正确的做法是将双引号替换为单引号,这样sed命令才能正确运行。

解决方法是使用下面的命令来复制文件的一部分内容到另一个文件中:

sed -n '1000, 1000000p' path/first/file > path/second/file

这个命令会将path/first/file文件中从第1000行到第1000000行的内容复制到path/second/file文件中。

通过以上的解决方法,我们可以轻松地将一个文件的一部分内容复制到另一个文件中。希望这篇文章对你有所帮助!

0