我有一个单词列表,例如:
string1
string2
string3
....
string12312
我如何以分隔的方式转换这些单词,以便输出可以用作 JS 数组,即"String1", "String2"..., "String12312"
--- 换句话说,我如何添加引号和逗号?我知道这可以在 shell 中完成,但我想只要结果可以转换为数组,任何其他解决方案都可以。
答案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
或者作为单行:
perl -MJSON -e 'print to_json ( [map{s/\n//gr}<>] )'
通过管道传输标准输入或指定文件名(如 grep/awk 等)
两个输出(后者在提供示例时):
["string1","string2","string3","string12312"]
可以将其格式化为“漂亮”的 JSON,并print to_json ( \@data, {pretty=>1})
添加换行和缩进。
(上面的一行是基于您所使用的较新的 Perl可能已安装。如果这不起作用:perl -MJSON -e 'chomp(@a=<>);print to_json ( \@a )'