Chinaunix

标题: 有关awk中特殊字符\的问题 [打印本页]

作者: voipexplore    时间: 2009-02-18 21:25
标题: 有关awk中特殊字符\的问题
比如我有文件内容如下:
111,222\33
我想打印出来的时候把\换成@,用awk我写成:
awk -F, '{gsub("\\","@",$2);print $1,$2}'

结果不对呢?把\换成其他字符就可以,请教各位达人,如何搞定啊?
ps:我就是想处理awk里gsub中的\问题,场景只是举例。
作者: wtuter    时间: 2009-02-18 21:33
标题: 回复 #1 voipexplore 的帖子
try:
{gsub(/\\/,"@",$0);print $1,$2}'
作者: 我是DBA    时间: 2009-02-18 21:48
awk -F, '{gsub(/\\/,"@");print $1,$2}'
作者: wtuter    时间: 2009-02-18 21:58
标题: 回复 #3 我是DBA 的帖子
做人要实在
作者: 我是DBA    时间: 2009-02-18 22:08
标题: 回复 #4 wtuter 的帖子
没办法,厚道不值钱。。
哈哈
我没看到你的,直接回的。
作者: liaosnet    时间: 2009-02-18 23:14
标题: 回复 #1 voipexplore 的帖子
sed更容易..
sed 's#\\#@#g'
作者: wtuter    时间: 2009-02-18 23:47
标题: 回复 #6 liaosnet 的帖子
是的,用sed更容易,但各人的要求不一样.

用tr也容易呀

tr '\\' '@'
作者: sunbw001    时间: 2009-02-19 07:51
awk -F, '{gsub("\\\\","#",$2);print $1,$2}' <<<"111,222\33"
作者: voipexplore    时间: 2009-02-19 11:01
拜谢楼上各位,真快啊,昨天刚发今天就有答案。
谢谢 wtuter  
谢谢 我是DBA
谢谢 sunbw001
谢谢 liaosnet
作者: liaosnet    时间: 2009-02-19 11:04
标题: 回复 #9 voipexplore 的帖子
其实呢,你在这个版,一般只要几分钟就有回帖~
作者: voipexplore    时间: 2009-02-19 11:36
是啊 不到10分钟就有答案了 呵呵
昨晚发完就去睡觉了
作者: 飞鸿无痕    时间: 2009-02-19 11:53
sed 's/\\/@/' urfile
作者: 飞鸿无痕    时间: 2009-02-19 11:55
是啊,用tr也不错,嘿嘿
tr '\\' '@' < urfile
作者: justlooks    时间: 2009-02-19 12:10
echo '111,222\33'|awk -F, '{gsub("\\","@",$2);print $1,$2}'
111 222@33
我这里很正常阿




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