Chinaunix
标题:
sed怎样处理变量里面含有&符合
[打印本页]
作者:
代号:军刀
时间:
2013-12-12 18:27
标题:
sed怎样处理变量里面含有&符合
[root@ ~]$ echo $a
134&1234
[root@ ~]$ echo abcd | sed "s/a/$a/"
134a1234bcd
怎样处理&这个符号
复制代码
作者:
chn475111
时间:
2013-12-12 19:48
a=134\&1234
echo abcd | sed "s/a/$a/"
作者:
代号:军刀
时间:
2013-12-12 20:28
回复
2#
chn475111
不能在变量a中做手脚,这个变量是传进来的,我并不知道,只能在sed中做手脚
作者:
reyleon
时间:
2013-12-12 20:28
好神奇,估计只能转义
作者:
yinyuemi
时间:
2013-12-12 20:36
回复
1#
代号:军刀
后面加上 s//\&/g 试试
作者:
reyleon
时间:
2013-12-12 20:38
134&1234bcd
[root@centos ~]# a='134&1234'
[root@centos ~]# echo abcd | sed 's/a/'${a//&/\\&}'/'
134&1234bcd
[root@centos ~]#
复制代码
这样子行咩? 实在找不着其他的招了
作者:
jason680
时间:
2013-12-12 20:41
本帖最后由 jason680 于 2013-12-12 21:03 编辑
回复
1#
代号:军刀
would you like those
#
export
a="
134&1234
"
# echo abcd | perl -ape 's/a/
$ENV{a}
/'
134&1234
bcd
---------------------------
# a="134&1234";
a=${a//&/\\&};
echo abcd | sed "s/a/$a/"
134&1234bcd
作者:
代号:军刀
时间:
2013-12-13 00:09
@yinyuemi
@reyleon
@jason680
没劲,这样每个sed每个串我都还得写多s//\&/g这玩意,相当于多了一个判断,判断里面是否有&这个字符
sed -e 子串1 -e 子串2 -e 子串3都得加那个串
作者:
yestreenstars
时间:
2013-12-13 09:06
明知sed对&敏感,还用sed,为何不用awk呢?何必钻牛角尖呢?
[root@localhost ~]# echo $a
134&1234
[root@localhost ~]# echo abcd | awk -va=$a 'BEGIN{FS=OFS=""}{for(i=0;++i<=NF;)if($i~/a/)$i=a}1'
134&1234bcd
[root@localhost ~]#
复制代码
作者:
代号:军刀
时间:
2013-12-13 10:38
回复
9#
yestreenstars
还不是你之前写的awk的bug引起的,有个php文件print的时候正常,但是print > FILENAME出了问题,输出到新文件只有一部分内容,然后就给中断退出了
http://bbs.chinaunix.net/thread-4112429-2-1.html
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2