Chinaunix

标题: shell 批量添加引号 [打印本页]

作者: shawnloong    时间: 2016-07-31 11:49
标题: shell 批量添加引号
输入
aa,bb,cc,dds,e_e,ffg
输出
'aa','bb','cc','dds','e_e','ffg'


目前也只能实现此步
echo aa,bb,cc,dds,e_e,ffg|sed 's/\,/&'\''/g'
aa,'bb,'cc,'dds,'e_e,'ffg
求大神
作者: moperyblue    时间: 2016-07-31 12:00
本帖最后由 moperyblue 于 2016-07-31 17:46 编辑
  1. sed "s/[^,]*/'&'/g"
复制代码
'aa','bb','cc','dds','e_e','ffg'
作者: sunzhiguolu    时间: 2016-07-31 12:01
本帖最后由 sunzhiguolu 于 2016-07-31 12:10 编辑
  1. perl -pe "s/\b/'/g" f
复制代码
'aa','bb','cc','dds','e_e','ffg'
作者: hz_oracle    时间: 2016-07-31 15:36
echo "aa,bb,cc,dds,e_e,ffg"|sed "s/\([^,]*\)/'\1'/g"
作者: 请叫我俊哥哈    时间: 2016-07-31 16:31
本帖最后由 请叫我俊哥哈 于 2016-08-01 22:18 编辑
  1. awk 'gsub(/\w+/,\047&\047)' lianxi3.txt
复制代码

作者: OS_unix    时间: 2016-07-31 17:19
  1. awk 'gsub(/[^,]+/,f"&"f)' f="'"
复制代码

作者: jcdiy0601    时间: 2016-08-01 09:43
  1. echo "aa,bb,cc,dds,e_e,ffg"|sed "s/[^,]*/'&'/g"
复制代码

作者: jason680    时间: 2016-08-01 10:42
回复 1# shawnloong

$ echo 'aa,bb,cc,dds,e_e,ffg' | awk -F, -vq="'" 'BEGIN{OFS=q","q}{$1=q$1;print $0q}'
'aa','bb','cc','dds','e_e','ffg'

   
作者: StarWingsss    时间: 2016-08-01 15:59
本帖最后由 StarWingsss 于 2016-08-01 16:56 编辑

echo "aa,bb,cc,dds,e_e,ffg" | awk -v FS="," -v OFS="'" '{$1=$1;print OFS $0 OFS}'
-v FS 用户指定列分隔符是 ","
-v OFS 用户指定列分割输出符是 "'"
$1=$1,欺骗awk强制更新OFS

作者: 杰大森    时间: 2016-08-01 23:05
sed -r "s/\w+/'&'/g"
作者: 夜色58    时间: 2016-08-02 10:59
echo aa,bb,cc,dds,e_e,ffg|sed "s/\w\+/'&'/g"
作者: shawnloong    时间: 2016-08-03 18:12
回复 11# 夜色58
3Q


   
作者: 少林功夫好    时间: 2016-08-05 09:23
尼玛,都是大神啊。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2