Anu*_*lok 6 unix bash shell sed
我对sed正则表达式非常新,并坚持要求.我从数据库中提取的记录很少
"姓名""年龄""来自ABC""12"
现在我用逗号分隔将其导出为CSV我正在使用's/[[:space:]]\+/,/g'此正则表达式
这给了我结果
"姓名", "年龄", "从,ABC", "12"
这是除非它已经插入第三列精细,空间现在我要插入,在双引号之间.
任何一个人都能指导我吗?
使用正则's/"[[:space:]]\+"/","/g'表达式我能够得到"Name","Age","From,ABC","12"但是当"Name","","From,ABC","12"它有它给它时它失败了"Name",",","From,ABC","12"
还有其他办法可以解决这个问题吗?
我会这样做:
echo \"Name\" \"Age\" \"From ABC\" \"12\" | sed -e 's/"[[:space:]]\+"/","/g'
Run Code Online (Sandbox Code Playgroud)
返回
"Name","Age","From ABC","12"
Run Code Online (Sandbox Code Playgroud)
编辑
如果你想让空字符串" "也匹配,那么你可以这样做:
$ echo \"Name\" \" \" \"Age\" \"From ABC\" \"12\" | sed -e 's/\("[[:alnum:][:space:]]*"\)/\1,/g' \
-e 's/",[[:space:]]\+/",/g' \
-e 's/,[[:space:]]\?$//g'
Run Code Online (Sandbox Code Playgroud)
返回
"Name"," ","Age","From ABC","12"
Run Code Online (Sandbox Code Playgroud)
,第一个规则匹配引号中的字符串(也可能为空),第二个规则删除和 下一个之间的空格",第三个规则删除最后一个,。
| 归档时间: |
|
| 查看次数: |
627 次 |
| 最近记录: |