分页: 1 / 1

请教一个sed替换的问题

发表于 : 2012-05-10 14:43
烟雨平生
脚本内容为
#!/bin/bash
str='hello \w wolrd'
echo $str
echo $str|sed '/\\w/Linux/'


想把\w 替换为Linux

执行结果:
user@passwd:/tmp$ ./file.sh
hello \w wolrd

sed:-e 表达式 #1,字符 7:extra characters after command

请问要怎么写才能正确地把\w替换掉, 谢谢!

Re: 请教一个sed替换的问题

发表于 : 2012-05-10 14:45
eexpress
● str='hello \w wolrd'; echo $str|sed 's/\\w/Linux/'
hello Linux wolrd

Re: 请教一个sed替换的问题

发表于 : 2012-05-10 15:06
lilydjwg
s

Re: 请教一个sed替换的问题

发表于 : 2012-05-10 15:55
烟雨平生
唉,弄错了一个地方,少了个s
迷住了,迷住了。

谢谢!

Re: 请教一个sed替换的问题

发表于 : 2012-05-23 11:15
anth
anth@cn:~$ echo hello \\w wolrd | sed s/\\w/linux/
linuxello \w wolrd
anth@cn:~$ echo hello \\w wolrd | sed 's/\\w/linux/'
hello linux wolrd

为什么加上引号就可以了,不加引号好像可以用正则表达式,功能强大点,加引号只操作字符?

Re: 请教一个sed替换的问题

发表于 : 2012-05-23 13:54
lilydjwg
anth 写了:anth@cn:~$ echo hello \\w wolrd | sed s/\\w/linux/
linuxello \w wolrd
anth@cn:~$ echo hello \\w wolrd | sed 's/\\w/linux/'
hello linux wolrd

为什么加上引号就可以了,不加引号好像可以用正则表达式,功能强大点,加引号只操作字符?
去学习下 shell 基本语法吧。