提取文本中两匹配行间内容(非贪婪)使用awk,sed,grep或perl
我有文本内容如下#BaseMean123678..........#Tile#somethingelse...........#BaseMean698321abc.......
我有文本内容如下
#Base Mean
1 2 3
6 7 8
..........
#Tile
#something else
...........
#Base Mean
6 9 8
3 2 1
a b c
.......
#Tile
#else
....
#Base Mean
......
#Tile
.....
分割===================================
想法,提取匹配#Base 和# Tile 之间内容,非贪婪匹配,求大神帮忙? 展开
#Base Mean
1 2 3
6 7 8
..........
#Tile
#something else
...........
#Base Mean
6 9 8
3 2 1
a b c
.......
#Tile
#else
....
#Base Mean
......
#Tile
.....
分割===================================
想法,提取匹配#Base 和# Tile 之间内容,非贪婪匹配,求大神帮忙? 展开
- 你的回答被采纳后将获得:
- 系统奖励15(财富值+成长值)+难题奖励20(财富值+成长值)
2个回答
展开全部
shell很方便
start=0
while read line
do
if [ `echo $line|grep Base|wc -l` -eq 1 ];then
start=1
continue
fi
if [ `echo $line|grep Title|wc -l` -eq 1 ];then
start=0
continue
fi
if [ $start -eq 1 ];then
echo $line
fi
done<file
start=0
while read line
do
if [ `echo $line|grep Base|wc -l` -eq 1 ];then
start=1
continue
fi
if [ `echo $line|grep Title|wc -l` -eq 1 ];then
start=0
continue
fi
if [ $start -eq 1 ];then
echo $line
fi
done<file
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
awk '/#Base[ \t]+Mean/,/#Tile/' filename
追问
谢谢您的意见,但问题仍然存在,因为我的问题是匹配每对#base 和#Tile 间内容,不是第一个#base 和最后一个#Tile ,不过再次感谢您的意见,也希望您给出进一步建议~~
追答
我试了n遍,都是打印第一个#Base Mean 和第一个#Tile之间的内容
然后打印第二个#Base Mean 和第二个#Tile之间的内容。
不存在从第一个#Base Mean一直打印到最后一个#Tile
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询