行の結合オプションのフィルタリング

行の結合オプションのフィルタリング

データ

Life by cerebral flow is coming to:---1) Prolonged jumping rate---2) Small holiday course---3) Hello this world---4) Dance rock coffee---5) Therapy unproven---Choose right answer:|1,3,5|2,5|1,2,3,5   5
...
Life by cerebral flow is coming to:---1) Prolonged jumping rate---2) Small holiday course---3) Hello this world---4) Dance rock coffee---5) Therapy unproven---Choose right answer:|1.,3.,5|2,5|1,2.,3,5    5

各行には次の内容が含まれています[Sentence]:---1)...(options)---n) ---[choose right ansewr]:|options| \tab [correct answer]

|[1-5],[1-5]?|一致しない、またはalso|[1-5].,[1-5]?|を許可するすべての文を探したいです。|1.,||1,|

私のPerl擬似コード

perl -pe '  
                 # read the file a record at a time and auto-print (-p)
    s/[0-5],[0-5]?//;    # remove those lines having the match
    s/[0-5].,[0-5]?//;    # remove those lines having the match
' file

問題は、これらの一致を含む行全体を削除することです。これらの項目を一致させることができますが、ここでは一致する行全体を削除することは困難です。

一致する行を削除する方法は?

ベストアンサー1

-n代わりに使用してください-p

perl -ne 'print unless /[0-5],[0-5]?|[0-5].,[0-5]?/' file

-n入力は1行ずつ処理されますが、各行は自動的に印刷されません。

あなたの目標は何であるかよくわからないので、正規表現を調整する必要があるかもしれませんが、一般的なアプローチはうまくいきます。

おすすめ記事