正規表現でファイルを分割したいのですが、ファイル形式は以下のとおりです
0|t| lorem ...
some text
138|t| title
some text
egrep "[0-9]+\|t\|" file | wc -l
を実行すると、発生が正しくカウントされますが、csplit filename /[0-9]+\|t\|/
を実行すると、一致するものが見つからないと表示され、ファイルが分割されません。
パターン内のパイプに問題があるようですが、解決策を見つけることができません。
csplit
正規表現はBRE
であるため、+
\|
などを理解できないことを理解する必要があります。
これを行うだけです:
csplit yourfile '%^[0-9]*|t|%' '/^[0-9]*|t|/' '{*}'
次に、現在のディレクトリでxxNN
という名前のファイルを探します。