- 论坛徽章:
- 0
|
文本如下a.txt
<managedObject>
aabc
abc
<managedObject>
acv
<managedObject>
aaa
<managedObject>
<managedObject abccc>
<managedObject bbbba>
<managedObject>
...
#!/bin/bash
afile=a.txt
line=(`sed -n '/<mana/=' $afile`) #Save in array 匹配到关键词的行号。例如结果为1、4、6、8、9、10。。。若干
num=${#line[@]} #Get array size 统计个数为6
echo $num
for n in ${line[*]}
do
startline=$n #开始的行号 例如1
endline=$n+1 #结束的行号,读取下一个startline减1就是一个区域,例如4-1=3)(写的是错的)
###########这个endline如何表达出来##########
sed -n "$startline,$endline p " $aflie(打印出关键的一个区域)
done
打印结果,
1 <managedObject>
2 aabc
3 abc
4 <managedObject>
5acv
6 <managedObject>
7 aaa
8 <managedObject>
9 <managedObject abccc>
10 <managedObject bbbba>
11 <managedObject>
|
|