LinuxSir.cn,穿越时空的Linuxsir!

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

sed 多模式匹配问题

[复制链接]
发表于 2010-6-1 14:56:47 | 显示全部楼层 |阅读模式
我有一个文件fff, 例如: 我想用sed找出包含BRANCH并且包含DAY的行,然后把这样的行替换为 “TRD_OLAP_BRANCH_TRD_QLTY_DAY_NB 我觉得这个很难”,用sed该怎么写呢?谢谢!
> more fff
TRD_OLAP_BRANCH_TRD_QLTY_DAY_NB
TRD_OLAP_BRANCH_TRD_QLTY_DAY_TJ
TRD_OLAP_HEAD_TRD_QLTY_DAY_TJ
 楼主| 发表于 2010-6-1 22:01:05 | 显示全部楼层
sed -n 's/\(.*BRANCH.*DAY.*\)/& 很好啊/p' fff

while read line
do
  flag=$(echo "$line" | grep "BRANCH.*DAY")
  if [ ! -z "$flag" ]
  then
    echo "$line 很好啊" >> aaa
  fi
done < fff
回复 支持 反对

使用道具 举报

发表于 2010-6-1 22:54:01 | 显示全部楼层
这个可以不考虑先后顺序
  1. sed -n 's/.*\(BRANCH\|DAY\).*/TRD_OLAP_BRANCH_TRD_QLTY_DAY_NB'
复制代码
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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