我有这个信息:
not what i want
ul
text1
text1
/ul
not what i want
not what i want
ul
texttext2
texttext2
texttext2
/ul
not what i want
如何在'ul'和'/ ul'之间获取数据?
我试过了grep -oP 'ul.*?/ul'
我想要的输出是:
ul
text1
text1
/ul
ul
texttext2
texttext2
texttext2
/ul
答案 0 :(得分:1)
使用此:
awk '/ul/,/\/ul/' file
或
sed -n '/ul/,/\/ul/p' file
或
perl -lne 'print if /ul/ .. /\/ul/' file
答案 1 :(得分:1)
在grep
和bash流程替换的帮助下使用tr
和PCRE:
$ grep -oP ul.*?ul <(cat file | tr '\n' _) | tr _ '\n'
ul
text1
text1
/ul
ul
texttext2
texttext2
texttext2
/ul
<(cat file | tr '\n' _)
用下划线替换换行符grep -oP ul.*?ul
获取ul—/ul
范围tr _ '\n'
将下划线替换为换行符