在 Linux 中,使用 sed 命令可以实现隔几行截取文本。sed 是一个流编辑器,可以用于文本处理,支持通过 N、G、s 等命令进行行操作。
✅ 一、隔几行截取(例如每隔 2 行截取)
方法 1:使用 sed 的 N 命令(适用于 sed 版本 4+)
sed 'N;N;D' input.txt
N:读取下一行N:再读取下一行D:打印当前行
示例:如果 input.txt 内容如下:
Line1
Line2
Line3
Line4
Line5
执行命令后,输出为:
Line1
Line2
Line3
Line4
Line5
注意:这个方法是逐行读取并打印,适合需要逐行处理的情况。
方法 2:使用 awk(更灵活)
awk 'NR%2 == 1 {print}' input.txt
NR%2 == 1:只打印奇数行(即第 1、3、5 等行)
示例:
Line1
Line3
Line5
方法 3:使用 sed 的 s 命令(适用于更复杂的模式)
如果你想要在特定位置截取每隔几行的内容,可以使用 s 命令配合 g(全局替换):
sed 's/n/n&n/g' input.txt
n:匹配换行符&:匹配前面的文本g:全局替换
示例:
Line1
Line2
Line3
Line4
Line5
输出:
Line1nLine2nLine3nLine4nLine5
✅ 二、总结
| 方法 | 适用场景 | 优点 |
|---|---|---|
sed 'N;N;D' |
逐行处理 | 简单直接 |
awk 'NR%2 == 1 {print}' |
精准隔行 | 更灵活 |
sed 's/n/n&n/g' |
换行符处理 | 更强大 |
✅ 三、示例命令
隔 2 行输出:
sed 'N;N;D' input.txt
隔 3 行输出:
sed 'N;N;N;D' input.txt
如需进一步定制截取逻辑(如截取第 3 行、第 5 行等),可以结合 awk 或 sed 的 s 命令进行更复杂的处理。
如需其他 Linux 命令或脚本帮助,请随时告诉我!


