shell脚本替换,用','

时间:2014-05-19 13:46:33

标签: bash shell replace

我对shell脚本相对较新。这对我来说很容易用PHP做,但是我不确定shell中的语法。

我正在运行一个查询(分配给一个变量),它带有一个逗号分隔值和空格来指定一个新行。

查询的输出示例:

04/2014,Linux,24124 04/2014,Solaris,24509 04/2014,Windows,40824

正如您所看到的,结果以逗号分隔,而行之间只有一个空格。我循环了这个,并能够在空间分裂它们。

array=(${COUNT// / })
for i in "${!array[@]}"
do
    INSERT INTO DATABASE_TABLE(ID,LATEST_SCAN_TIME,OPERATING_SYSTEM,COUNT) VALUES ('','${array[i]}');
done

由于某种原因,我在更换","时遇到了问题。在$ {array [i]}到"','"。

当前输出:

INSERT INTO DATABASE_TABLE (ID,LATEST_SCAN_TIME,OPERATING_SYSTEM,COUNT) VALUES ('','04/2014,Linux,24124');

我想要的是什么:

INSERT INTO DATABASE_TABLE (ID,LATEST_SCAN_TIME,OPERATING_SYSTEM,COUNT) VALUES ('','04/2014','Linux','24124');

我该怎么做?谢谢!

1 个答案:

答案 0 :(得分:3)

你正在寻找这个吗?

kent$  echo "a,b,c"|awk -F, -v OFS="','" -v q="'" '{$1=$1}$0=q$0q' 
'a','b','c'

kent$  echo "a,b,c"|sed -r "s/^|$/'/g;s/,/','/g"
'a','b','c'