正規表現でファイルを分割したいです。ファイル形式は次のとおりです。
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
次に、現在のディレクトリで指定されたファイルを見つけます。