1

私はまだ awk を使い始めたばかりですが、やりたいことの 90% を実行する awk コマンドがあります。私が分割している行は次のようになります。

Key1^C{"s":"VALUE"}^BKEY2^C{"s":"VALUE"}^BKEY3^C{"s":"VALUE"}

このawkコマンドで分割しています

awk -F'\02' '{for(x=1; x<=NF; x++) {nf=split($x,f,"\03"); print f[1], "--", f[2], ","}}' inputfile > outputfile.txt

こんな感じで出てきます

Key1 -- Value,
Key2 -- Value,
Key3 -- Value,

このように見えることが可能であれば、代わりに誰かが私をどのようにすべきかを教えてくれることを望んでいました

Key1 -- Value, Key2 -- Value, Key3 -- Value
4

3 に答える 3

2

これを試してください:(コマンドに基づいて):

awk -F'\02' '{for(x=1; x<=NF; x++) {nf=split($x,f,"\03"); printf "%s",f[1]" -- " f[2] (x==NF?"": ",")}print ""}' inputfile > outputfile.txt
于 2013-08-09T13:11:07.833 に答える
0

これを試して:

awk -F'\02' '{for(x=1; x<=NF; x++) {nf=split($x,f,"\03"); tmpvar=tmpvar" "f[1], "--", f[2], ","}}END{sub(/,$/,"",tmpvar); print tmpvar}' inputfile > outputfile.txt
于 2013-08-09T13:10:35.033 に答える