使用Shell脚本,我们可以从指定行开始读取文本文件,直到遇到特定关键词(例如'2J')所在的行为止,并记录读取位置和输出内容。

假设上次记录下的位置为$last,可以使用sed命令来实现:

#!/bin/bash

# 上次记录的位置
last=10

# 读取文本,从last行开始,一直到2J所在的行数为止
content=$(sed -n '${last},/2J/p' file.txt)

# 输出读取到的内容
echo '$content'

# 记录读到的位置
new=$(echo '$content' | wc -l)
let last=last+new
echo '读取到的位置为:$last'

上述程序中,使用了sed命令的-n选项,表示只输出匹配的行。'${last},/2J/p'表示从第$last行开始,一直输出到匹配'/2J/'的行,即2J所在的行。将其赋值给变量$content,即可得到读取到的内容。利用wc命令统计$content中行数,即为本次读取到的行数,加上上次记录的位置$last,即为本次记录的位置。

Shell脚本:从指定行读取文本至特定关键词所在行

原文地址: https://www.cveoy.top/t/topic/nVAQ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录