我想通过正则表达式分割文件,我的文件格式如下
0|t| lorem ...
some text
138|t| title
some text
如果我执行,egrep "[0-9]+\|t\|" file | wc -l
它会正确计算出现次数,但如果我执行csplit filename /[0-9]+\|t\|/
,它会说找不到匹配项,并且不会拆分文件。
模式中的管道似乎存在一些问题,但无法找到解决方案。
答案1
你必须意识到正csplit
则表达式是基本正则表达式 (BRE)因此不会理解+
\|
等等。
只需这样做:
csplit yourfile '%^[0-9]*|t|%' '/^[0-9]*|t|/' '{*}'
然后查找xxNN
当前目录中指定的文件。