awk、sed、grepを使用してテキストファイル内の一連の行パターンを確認するには?

awk、sed、grepを使用してテキストファイル内の一連の行パターンを確認するには?

100行のファイルを読み込んでパターンを検索するbashスクリプトを作成したいと思います。def <space>その行でパターンが見つかったら、次の行を調べて、パターンが次の行に'''あることを確認します。その場合は、'''次の項目が5行離れていることを確認してください。すべて「はい」の場合はTRUEをエコーし​​、そうでない場合はFALSEをエコーし​​ます。

たとえば、ファイル1:

line 1
line2
...

    def something...
        '''
        random text
        rand..text
        rand..
        ra..


        '''

エコ正確

ファイル2:

line 1
line 2
...

    def something..
        int a
        ...

エコエラー

def <space>ファイルにはいくつかのパターンがあり、そのうちの1つがテストに失敗した場合、全体の結果はFALSEです。

awkgrepまたはを使用してこれを行うにはどうすればよいですかsed

ベストアンサー1

一度試してみると、これがあなたが探しているものかどうかが説明されます。

 grep -A5 "def " file.txt | grep -n "'''" | awk -F ':' '{print $1}' | tr '\n' ' ' | awk  '{if ($1 == "2" && $2 == "" ) print "TRUE";else print "FALSE"}'

おすすめ記事