【已搞定】问一个sed命令替换字符,关于手动输入变量
方法写最上面了#!/bin/bash
read -p "(shu ru ni de xin xi):" b
sed -i "s/33.33.33.33/$b/g" /root/s.txt
结果 把s.txt的3333换成了输入的东西
首先要求用户手动输入三个变量
$a
$b
$c
然后把xx.txt文件的1111换成变量1
2222换成变量2
3333变成变量3
我这样写 怎么替换成了$a $b $c难道不支持这中变量?
read -p "(enter a a):" a
read -p "(enter a b):" b
read -p "(enter a c):" c
sed -i 's/1111/$a/g' /root/s.txt
sed -i 's/2222/$b/g' /root/s.txt
sed -i 's/3333/$c/g' /root/s.txt
他竟然把1111替换成了$a这个字符 而不是我输入的$a的实际内容
刚才尝试了双引号
#!/bin/bash
echo "input b"
read b
sed "s/33.33.33.33/$b/g" s.txt
结果屏幕上显示修改对了 33确实变成了输入的那个b
但是下载s.txt一看却没有变化。不知道何情况
[ 本帖最后由 javaluo 于 2011-6-9 21:14 编辑 ] 等高手吧.或者你可以试试 awk 单引号内不替换变量 菜鸟路过。。。 单引号里的变量不会被识别 刚才尝试了双引号
#!/bin/bash
echo "input b"
read b
sed "s/33.33.33.33/$b/g" s.txt
结果屏幕上显示修改对了 33确实变成了输入的那个b
但是下载s.txt一看却没有变化。不知道何情况 原帖由 hepac 于 2011-6-9 20:38 发表
back.gif
单引号内不替换变量 这个也不太懂,等待高手解答 已搞定 #!/bin/bash
read -p "(shu ru ni de xin xi):" b
sed -i ‘s/33.33.33.33/’$b‘/g’ /root/s.txtls你是在复制么
hug.gif
页:
[1]
2