パイプ(|)を持つcsplit正規表現

パイプ(|)を持つcsplit正規表現

正規表現でファイルを分割したいです。ファイル形式は次のとおりです。

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次に、現在のディレクトリで指定されたファイルを見つけます。

おすすめ記事