web-dev-qa-db-ja.com

パイプ付きのcsplit正規表現(|)

正規表現でファイルを分割したいのですが、ファイル形式は以下のとおりです

0|t| lorem ...
some text 
138|t| title 
some text 

egrep "[0-9]+\|t\|" file | wc -lを実行すると、発生が正しくカウントされますが、csplit filename /[0-9]+\|t\|/を実行すると、一致するものが見つからないと表示され、ファイルが分割されません。

パターン内のパイプに問題があるようですが、解決策を見つけることができません。

2
Jigar Parekh

csplit正規表現はBREであるため、+\|などを理解できないことを理解する必要があります。

これを行うだけです:

csplit yourfile '%^[0-9]*|t|%' '/^[0-9]*|t|/' '{*}'

次に、現在のディレクトリでxxNNという名前のファイルを探します。

1
user218374