次の単語のリストがあります。
string1
string2
string3
....
string12312
出力をJS配列として使用できるように、これらの単語を区切られた方法でどのように変換しますか?つまり、"String1", "String2"..., "String12312"
---つまり、引用符とコンマをどのように追加しますか?私はこれがシェルで実行できることを知っていますが、結果を配列に変換できる限り、他の解決策も問題ありません。
答え1
1つの方法は次のとおりです。
sed 's/^\|$/"/g' file | paste -d, -s
"string1","string2","string3","....","string12312"
答え2
awkを使用してください:
awk '{printf "\"%s\", ", $0}' file
答え3
xargs printf '"%s", ' <file
...サンプルデータを使用します。
"string1", "string2", "string3", "....", "string12312",
答え4
いつでもJSON配列に変換できます。
#!/usr/bin/env perl
use strict;
use warnings;
use JSON;
chomp ( my @data = <DATA> );
print to_json ( \@data );
__DATA__
string1
string2
string3
string12312
または1行で:
perl -MJSON -e 'print to_json ( [map{s/\n//gr}<>] )'
標準入力をパイプするか、ファイル名(grep / awkなど)を指定します。
2つの出力(例を提供する場合の後者):
["string1","string2","string3","string12312"]
print to_json ( \@data, {pretty=>1})
改行とインデントを追加して、「かわいい」JSONにフォーマットすることができます。
(上記の行は、使用している最新のPerlに基づいています。可能インストールされました。これがうまくいかない場合:perl -MJSON -e 'chomp(@a=<>);print to_json ( \@a )'