【发布时间】:2017-11-15 02:36:42
【问题描述】:
我想将一个文件的第 10 到 15 行复制到 Unix 中的另一个文件中。
我有文件 file1.txt 和 file2.txt。
我想将第 10 行到第 15 行从 file1.txt 复制到 file2.txt。
【问题讨论】:
我想将一个文件的第 10 到 15 行复制到 Unix 中的另一个文件中。
我有文件 file1.txt 和 file2.txt。
我想将第 10 行到第 15 行从 file1.txt 复制到 file2.txt。
【问题讨论】:
然后用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
file3.txt,然后附加原始文件 (cat file2.txt >> file3.txt)。
作为对上一个答案的补充,您可以使用以下 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
【讨论】: