3

私はファイルを持っていますtest.txt

class c1 {
    ___________ any text _____________
}
class c2 {
    ___________ any text _____________
}
class c3 {
    ___________ any text _____________
}

test.txt行ごとにスキャンし、各行を正規表現と比較して、クラスのヘッダーを含むが機能しない行を取得するbashスクリプトを作成します:(

#!/bin/bash
while read line           
do           
    if [[ "$line" =~ "class *\w+" ]]; then
        echo $line
    fi  
done <test.txt

最終的な目標は、ファイル内の各クラスを分離します

4

4 に答える 4

4

片道awk

awk '/^class/{p=1;++x}/^}/{p=0;print $0>"file"x}p{print $0>"file"x}' test.txt

出力

$ head file*
==> file1 <==
class c1 {
    ___________ any text _____________
}

==> file2 <==
class c2 {
    ___________ any text _____________
}

==> file3 <==
class c3 {
    ___________ any text _____________
}
于 2013-07-09T21:20:23.290 に答える