请教一个sed替换的问题

sh/bash/dash/ksh/zsh等Shell脚本
回复
头像
烟雨平生
帖子: 103
注册时间: 2006-07-06 16:35
联系:

请教一个sed替换的问题

#1

帖子 烟雨平生 » 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替换掉, 谢谢!
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

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

#2

帖子 eexpress » 2012-05-10 14:45

● str='hello \w wolrd'; echo $str|sed 's/\\w/Linux/'
hello Linux wolrd
● 鸣学
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

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

#3

帖子 lilydjwg » 2012-05-10 15:06

s
头像
烟雨平生
帖子: 103
注册时间: 2006-07-06 16:35
联系:

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

#4

帖子 烟雨平生 » 2012-05-10 15:55

唉,弄错了一个地方,少了个s
迷住了,迷住了。

谢谢!
anth
帖子: 174
注册时间: 2010-11-09 3:06

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

#5

帖子 anth » 2012-05-23 11:15

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

为什么加上引号就可以了,不加引号好像可以用正则表达式,功能强大点,加引号只操作字符?
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

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

#6

帖子 lilydjwg » 2012-05-23 13:54

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 基本语法吧。
回复