大量のテキストから2つの値を分離し、各読み取り値を空白行に分割します。

大量のテキストから2つの値を分離し、各読み取り値を空白行に分割します。

以下のようにコンテンツを含む大きなテキストファイルがあります。

name=ABC
class=3
age=7
roll_no=41 

name=XYZ
class=4
age=9
roll_no=23 

では、どうすればname各値を区切って、age以下のように空白で区切られた値で1行に結果を作成できますか?

ABC 3
XYZ 9

JSON結果を形式で保存するツール/スクリプトはありますか?

何時間も試してみましたが、コマンドラインのテキスト処理が不便でしたawk。よろしくお願いしますsedtrgrep

ベストアンサー1

私はawkを使います:

awk -F"=" '
    {data[$1] = $2} 
    function output() {
        if ("name" in data && "age" in data) 
            print data["name"], data["age"]
        delete data
    }
    NF == 0 {output()} 
    END     {output()}
' filename

おすすめ記事