求助:在Linux终端中从已有文件提取指定行生成新文件的方法
实现方法
可以用Linux自带的head、tail和echo命令组合,结合I/O重定向完成需求,下面是两种简单的实现方式:
分步执行(适合新手理解)
- 提取
file A的前3行,写入file B(会覆盖file B原有内容):
head -3 "file A" > "file B"
- 在
file B末尾追加分隔用的三个句号:
echo "..." >> "file B"
- 提取
file A的最后3行,追加到file B末尾:
tail -3 "file A" >> "file B"
一行命令完成
把三个操作打包成一个整体,一次性输出到file B:
{ head -3 "file A"; echo "..."; tail -3 "file A"; } > "file B"
命令说明
head -3 文件名:提取文件的前N行,这里指定N=3tail -3 文件名:提取文件的最后N行,这里指定N=3echo "...":输出指定文本,用来生成中间的分隔线>:覆盖式重定向,清空目标文件后写入内容>>:追加式重定向,在目标文件现有内容末尾添加新内容- 大括号
{ ... }:将多个命令打包,让它们的输出统一重定向到目标文件,减少文件操作次数
内容的提问来源于stack exchange,提问作者user23484073
相关产品推荐
相关产品推荐

