正規表現を使用してパターンに一致する行のグループを除外しようとしていますが、正しい正規表現を使用するのに問題があります。パターンに一致する行のグループを一致させる方法
transaction 390134; promote; 2016/12/20 01:17:07 ; user: build
to: DEVELOPMENT ; from: DEVELOPMENT_BUILD
# some commit comment
/./som/file/path 11745/409 (22269/257)
# merged
version 22269/257 (22269/257)
ancestor: (22133/182)
transaction 390136; promote; 2016/12/20 01:17:08 ; user: najmi
to: DEVELOPMENT ; from: DEVELOPMENT_BUILD
/./some/other/file/path 11745/1 (22269/1)
version 22269/1 (22269/1)
ancestor: (none - initial version)
type: dir
私は、「トランザクション」で始まる行フィルタリング含めるしたい
「ユーザー::で始まる次の行までのすべての方法を構築する」
テキストファイルには、このような行が含まれていますトランザクション」。
アイデアは、ユーザーがいないトランザクション行で終わることです 『ビルド』。任意の助け
感謝。
これをしますか? https://regex101.com/r/DOeWXt/1 –
@ Mr. Kang涼しいregex101.comサイトを表示していただきありがとうございます。表示されている正規表現は、いくつかの行にまたがるトランザクションレコード全体と一致しませんので、これは私が探していたものとまったく同じではありません。私はpii_keによって与えられたperlソリューションに相当する純粋なregexpソリューションに感謝します。 –
@ Mr.kangあなたが与えたリンクで動作する正規表現に次のようになっています: ^トランザクション+ +ユーザ:\ s(?| build)(。| \ n)+ しかし、次のgrepコマンドを使用して作業してください: grep "^ transaction。+?ユーザー:\ s(?!n)+" test_data.txt –