1

ファイルの内容:(トピック-> 1に基づく)

"Shimshon A",
"(blank)",
"November 24, 2012",
"13,481",
"jonathan t",
"Laguna Niguel, CA",
"November 24, 2012",
"13,480",
"scott b",
"Sussex, NJ",
"November 24, 2012",
"13,479",

コマンドを改善する方法は?:

gawk --posix 'ORS="";{sub(/,[0-9]{3}/, "&&\n"); print }' file

結果:

$ gawk --posix 'ORS="";{sub(/,[0-9]{3}/, "&&\n"); print }' file
"Shimshon A","(blank)","November 24, 2012","13,481,481
","jonathan t","Laguna Niguel, CA","November 24, 2012","13,480,480
","scott b","Sussex, NJ","November 24, 2012","13,479,479
",userpc@userpc-desktop:~/Pulpit$ 

印刷したい:

"Shimshon A","(blank)","November 24, 2012","13,481"
"jonathan t","Laguna Niguel, CA","November 24, 2012","13,480"
"scott b","Sussex, NJ","November 24, 2012","13,479"

awkでのみ解決してください。

ご協力ありがとうございました。

4

3 に答える 3

1

私はあなたがただぎこちないと言ったことを知っています。ストレッチしたい場合:

paste -d "" - - - - < file | sed 's/,$//'
于 2012-11-25T14:20:13.253 に答える
1

これがあなたが探しているものだと思います:

awk -v ORS="" '/"[0-9]{2},[0-9]{3}"/ { sub(/,$/,""); print $0 "\n"; next }1' file

結果:

"Shimshon A","(blank)","November 24, 2012","13,481"
"jonathan t","Laguna Niguel, CA","November 24, 2012","13,480"
"scott b","Sussex, NJ","November 24, 2012","13,479"
于 2012-11-25T11:11:30.307 に答える
1

このワンライナーはうまくいきます、

awk -FS="" 'BEGIN{ORS=""} {print substr($1, 1, length($1)-1) ((c%4==3)? "\n": ",");c=c+1;}' file

これは、より精巧なバージョンです。

awk -FS="" 'BEGIN{
    ORS="";
    c=0
} {
    print substr($1, 1, length($1)-1) ((c%4==3)? "\n": ",");
    c=c+1;
}' < file
于 2012-11-25T10:44:07.607 に答える