用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,即为本次记录的位置。
原文地址: https://www.cveoy.top/t/topic/eEt3 著作权归作者所有。请勿转载和采集!