特定の文字の後にカンマを挿入し、最後のレコードに挿入しないようにするにはどうすればよいですか?
データがあります
[
{"ID": 12345}
{"ID": 67891}
{"ID": 14785}
]
}
したがって、最後の項目を除いて、それぞれの後にコンマを挿入しようとしています。
したがって、更新は次のようにする必要があります。
[
{"ID": 12345},
{"ID": 67891},
{"ID": 14785}
]
誰でもこの問題を解決するのに役立ちますか?
答え1
$ awk '/^{/ { if (lastline ~ "}$") lastline=lastline ","; print lastline; }; '\
'! /^{/ && NR>1 { print lastline; }; { lastline=$0; }; '\
'END { print lastline; }' inputfile
[
{"ID": 12345},
{"ID": 67891},
{"ID": 14785}
]
[
{"ID": 12345},
{"ID": 67891},
{"ID": 14785}
]
答え2
パール1行:
$ perl -a -F"\n" -ne 'BEGIN{$/="]";} print $F[0]."\n" if $. == 1; map { ($F[$_] =~ /[\[\]]/) || ($_ == @F-2) ? print $F[$_]."\n" : print $F[$_].",\n"; } (1 .. @F-1) ' file
[
{"ID": 12345},
{"ID": 67891},
{"ID": 14785}
]
[
{"ID": 12345},
{"ID": 67891},
{"ID": 67891},
{"ID": 14785}
]
入力ファイル:
$ cat file
[
{"ID": 12345}
{"ID": 67891}
{"ID": 14785}
]
[
{"ID": 12345}
{"ID": 67891}
{"ID": 67891}
{"ID": 14785}
]
答え3
またはtr
sed
tr "\n" "|" < file | sed "s/}|{/},|{/g" | tr "|" "\n" file
でも
tr "\n" "|" < file | sed "s/}|{/},\n{/g; s/|/\n/g"
使用しないと、行の長さが制限される可能性があります。牛に似た一種の栄養sed