如何自动为大列表中的每个项添加双引号和逗号?

时间:2014-11-14 08:08:08

标签: linux awk sed

我有一个像

这样的大清单
Afghanistan
Albania
Algeria
Andorra
Angola
.
.

如何使用某些Linux实用程序自动生成列表,而无需手动执行?

"Afghanistan",
"Albania",
"Algeria",
"Andorra",
"Angola",
.
.

8 个答案:

答案 0 :(得分:5)

例如,使用AWK:

awk '{ print "\"" $0 "\","; }' <myFile

答案 1 :(得分:2)

用sed

bash-3.2$ sed 's/\(.*\)/"\1",/g' myFile
"Afghanistan",
"Albania",
"Algeria",
"Andorra",
"Angola",

sed 's/.*/"&",/g' myFile

答案 2 :(得分:2)

使用sed:

sed 's/\(.*\)/"\1",/g' file

使用while循环:

while read line;do echo \"$line\",;done < file

使用for循环:

for line in `cat file`;do echo \"$line\",;done

答案 3 :(得分:2)

只是为了好玩,这是一个纯粹的bash / zsh版本:

while read line ; do echo "\"$line\"" ; done <myFile

答案 4 :(得分:2)

最简单的应该是主要针对那个

sed 's/.*/"&",/' SourceFile > DestFile
  • 在posix中无需其他选项/操作
  • 如果使用GNU sed DestFile与SourceFile相同

    sed -i "" -e 's/.*/"&",/' SourceFile

答案 5 :(得分:1)

以更好的方式使用awk

awk '$0="\""$0"\","' yourfile

答案 6 :(得分:1)

你可以明确地说:

sed -e 's/^/"/' -e 's/$/",/' file

有了这个,你说:

  • 将行的开头(^)替换为"
  • 将行尾($)替换为",

答案 7 :(得分:1)

使用编辑器的搜索和替换功能。

搜索行的开头并替换为"。搜索行尾并替换为",。或者,根据编辑器的功能,对^(.*)$之类的内容进行正则表达式搜索,并替换为"\1",