LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 898|回复: 5

sed转换?[已解决]

[复制链接]
发表于 2004-3-9 17:43:19 | 显示全部楼层 |阅读模式
在用sed转换字符串时如果在单独的程序中有效
但是如果用在函数中实现不了文件中字符串的替换
为什么?
发表于 2004-3-9 17:59:16 | 显示全部楼层
  1. /home/javalee:function zh {
  2. echo $1|sed 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'
  3. }
  4. /home/javalee:zh abc
  5. ABC
  6. /home/javalee:
  7. /home/javalee:zh kkk
  8. KKK
  9. /home/javalee:function th {
  10. echo $1|sed 's/.*/OK/g'
  11. }
  12. /home/javalee:th df
  13. OK
  14. /home/javalee:th 234
  15. OK
复制代码
可以呀!
发表于 2004-3-9 18:43:56 | 显示全部楼层

回复: sed转换

最初由 xggabc 发表
在用sed转换字符串时如果在单独的程序中有效
但是如果用在函数中实现不了文件中字符串的替换
为什么?
why not ?:p
 楼主| 发表于 2004-3-12 21:55:08 | 显示全部楼层

参数问题

我试验过,但是对于两个参数或者是更多的参数好象无效?
即th a1 b1 c1等就改变不了
 楼主| 发表于 2004-3-12 22:11:14 | 显示全部楼层
例如
foo{
sed s/$1/$2/g $3 >file
cp file $3
}
foo $a $b $c
$c是一个文件名
但是这样文件中的内容并不能改变
用一个参数好使
为什么?
发表于 2004-3-12 23:16:30 | 显示全部楼层
最初由 xggabc 发表
例如
foo{
sed s/$1/$2/g $3 >file
cp file $3
}
foo $a $b $c
$c是一个文件名
但是这样文件中的内容并不能改变
用一个参数好使
为什么?

注意shell变量在sed中的格式,这是我以前很早的一个练习,
  1. if cat $3|grep $1 >/dev/null
  2. then
  3. sed "s/[color=red]${1}[/color]/[color=red]${2}[/color]/g" $3
  4. echo "ok"
  5. else
  6. echo "Not found $1"
  7. fi
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表