1

次のようなファイルがあります。

ログファイル:

PROFILE INDEX                    10

PROFILE NAME                Profile_name1

PLMN NAME         PLMN         PLMN NAME         PLMN      
                  INDEX  ALLOWED                     INDEX  ALLOWED

Name1              2       NO        name3             3     NO        
name2              4       NO        name4             5     NO        

PROFILE INDEX                    11
PROFILE NAME                Profile_name2

PLMN NAME         PLMN         PLMN NAME         PLMN      
                  INDEX  ALLOWED                     INDEX  ALLOWED

Name5              2       NO        name3             7     NO        
name6              4       NO        name4             8     NO   

CSVに変換したい。

必要な出力:

Pofile Index,Profile Name,PLMN_ Name,PLMN_INDEX,Allowed
10, Pofile_name1,   Name1,      2,  no
10, Pofile_name1,   Name3,      3,  NO
10, Pofile_name1,   Name4,      5,  NO
10, Pofile_name1,   Name2,      4,  no

助けてください。前もって感謝します。

4

2 に答える 2

1

試す

awk -f convert.awk input.txt

input.txt入力ファイルはどこにconvert.awkあり、

BEGIN {
    OFS=", "
    print "Profile Index", "Profile Name", "PLMN_Name", "PLMN_Index", "Allowed"
}

/^PROFILE INDEX/ {
    ind=$3
    next;
}
/^PROFILE NAME/ {
    sub(/^PROFILE NAME/,"")
    name=$0
    next
}

/^PLMN NAME/ {
    getline;    getline
    d=1; next
}

d==1 {
    pname[1]=$1; pind[1]=$2; all[1]=$3;
    pname[3]=$4; pind[3]=$5; all[3]=$6;
    d++;     next
}
d==2 {
    pname[2]=$1; pind[2]=$2; all[2]=$3;
    pname[4]=$4; pind[4]=$5; all[4]=$6;
    for (i=1; i<=4; i++) {
        print ind, name, pname[i], pind[i], all[i]
    }
    d=0;      next
}
于 2013-10-15T15:48:39.273 に答える
0

次のように使用できます。

awk -vRS="" -vOFS=',' '$1=$1' file
于 2013-10-15T15:15:09.033 に答える