我有一个变量$out:
out=1,2,3,4,5
我想更改第三列,以便值得到单引号,如(我在这里讨论列,因为 $out 代表数据库条目的插入语句的值):
out=1,2,'3',4,5
有人知道如何使用 awk 或 sed 来完成这个吗?
答案1
如果:
out=1,2,3,4,5
和sed
:
sed -E "s/[^,]+/'&'/3" <<<"$out"
和awk
:
awk '{ $3 = q $3 q }1' FS=, OFS=, q="'" <<<"$out"
两种情况下的输出:
1,2,'3',4,5
答案2
仅限 Bash...
$ 出=1,2,3,4,5 $ echo $out | (IFS=',' 读取 abcde ;回显 $a $b $c $d $e ) 1 2 3 4 5 $ echo $out | (IFS=',' 读取 abcde ;回显“$a,$b,'$c',$d,$e”) 1,2,'3',4,5 $ out="$(echo $out | ( IFS=',' read abcde ; echo "$a,$b,'$c',$d,$e" ))" $ 回显 $out 1,2,'3',4,5 $
相关信息:www.tldp.org-> Bash 指南