我有一个包含此类内容的文本文件:
@api.constraints('field1','field2')
def _check_duplicate_(self):
_logger.info('MY CONSTRAINT IS CALLED')
import pdb;pdb.set_trace()
我想获得以“c__”开头并以“|”结尾的所有事件所以最终的结果是:
d__Affenpinscher|c__Abyssinian|h__Kathiawari|
a__Gold|y__Slix|c__Kathiawari|c__Cact
我对正则表达不太好,所以感谢你的帮助。
编辑:我正在寻找一个bash命令,所以grep / sed / awk可用 我试图从一个基本的例子开始:
c__Abyssinian
c__Cact
with< PRE>和< / PRE>该模式的开始和结束 到
sed -n "/<PRE>/,/<\/PRE>/p" input.html
但我没有获得想要的输出
编辑2:我试图从类似的线程How to use sed/grep to extract text between two words?调整这个答案但我必须做错事,因为我的输出是空的。
这是我试过的命令:
sed -n "/c__/,/|/p" breedList.txt > breedC.txt
答案 0 :(得分:1)
rkta的回答做了诀窍,谢谢:):
echo "d__Affenpinscher|c__Abyssinian|h__Kathiawari|" | grep -o -P '(?<=c__).*?(?=\|)' The vertical bar | is a special character and needs to be escaped.
You say: start with "c__" and end with "|", but c__Cact doesn't end with |