파일의 모든 단어에 따옴표와 쉼표를 추가하세요.

파일의 모든 단어에 따옴표와 쉼표를 추가하세요.

다음과 같은 단어 목록이 있습니다.

string1
string2
string3
....
string12312

출력을 JS 배열로 사용할 수 있도록 이러한 단어를 구분된 방식으로 어떻게 변환합니까? 즉, "String1", "String2"..., "String12312"---즉, 따옴표와 쉼표를 어떻게 추가합니까? 나는 이것이 셸에서 수행될 수 있다는 것을 알고 있지만 결과가 배열로 변환될 수 있는 한 다른 솔루션도 괜찮을 것이라고 생각합니다.

답변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"]

print to_json ( \@data, {pretty=>1})줄바꿈과 들여쓰기를 추가하여 "예쁜" JSON으로 형식화할 수 있습니다 .

(위 줄은 사용 중인 최신 Perl을 기반으로 합니다.가능한설치되었습니다. 이것이 작동하지 않는 경우:perl -MJSON -e 'chomp(@a=<>);print to_json ( \@a )'

관련 정보