免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12345
最近访问板块 发新帖
楼主: zd4281
打印 上一主题 下一主题

请问如何获得匹配串第一次出现在文件中位置(行号)? [复制链接]

论坛徽章:
1
数据库技术版块每日发帖之星
日期:2016-01-24 06:20:00
41 [报告]
发表于 2003-09-19 13:02 |只看该作者

请问如何获得匹配串第一次出现在文件中位置(行号)?

原帖由 "zd4281" 发表:
有什么问题帮我再检查一下好吗?
谢谢
   
n=`sed -n "/${string}/"q ${opf} | sed -n '$='`

这句管道前的那个sed是不用-n选项的,应该这样:
  1. n=`sed "/${string}/"q ${opf} | sed -n '$='`
复制代码

论坛徽章:
0
42 [报告]
发表于 2003-09-19 13:06 |只看该作者

请问如何获得匹配串第一次出现在文件中位置(行号)?

ok了!
太感谢你们了
那么如果我要从当前位置在向上找另一个不同的匹配串并获得行号该怎么办呢?

论坛徽章:
0
43 [报告]
发表于 2003-09-19 13:08 |只看该作者

请问如何获得匹配串第一次出现在文件中位置(行号)?

这个问题不算难啊,大家还讨论了3页,真是人气旺,呵呵

Minsic的最后说的这个代码应该可以解决问题了吧

论坛徽章:
0
44 [报告]
发表于 2003-09-19 13:10 |只看该作者

请问如何获得匹配串第一次出现在文件中位置(行号)?

是的,minsic把这个问题解决了,admirer也帮了大忙!

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
45 [报告]
发表于 2003-09-19 13:13 |只看该作者

请问如何获得匹配串第一次出现在文件中位置(行号)?

原帖由 "zd4281" 发表:
命令行可以啊,
就是在shell中不行!!!!!!!!
   
这肯定是你引用的问题,说清楚好不好!
下面是我测试的结果:
  1. cat a.ksh
  2. n=$(sed -n "/$1/{=;q;}" $2)
  3. echo $n

  4. a.ksh  zd zd
  5. 5
复制代码

论坛徽章:
1
数据库技术版块每日发帖之星
日期:2016-01-24 06:20:00
46 [报告]
发表于 2003-09-19 13:30 |只看该作者

请问如何获得匹配串第一次出现在文件中位置(行号)?

原帖由 "zd4281" 发表:
ok了!
太感谢你们了
那么如果我要从当前位置在向上找另一个不同的匹配串并获得行号该怎么办呢?
   


  1. sed -n "1,${n}"p zd|sed -n '/match_string2/'=|sed -n '$p' #如果match_string2是变量的话,请将sed命令部分用双引号"包围
复制代码

论坛徽章:
0
47 [报告]
发表于 2003-09-19 14:47 |只看该作者

请问如何获得匹配串第一次出现在文件中位置(行号)?

zengde#findrows zd zd
5
5
zengde#
不应该是这个结果,
getYesOrNo(){
read flag?"do you find next match pattern?[y/n]"
case $flag in
[yY])
  return 0;;
[nN])
  return 1;;
*)
getYesOrNo
esac
}
##########################
if [ $# -ne 2 ]
   then
   echo Usage:findrows filename string
   exit 1
fi
#####################################
cp $1 ${1}.bak
opf=${1}.bak
string=$2
n=`sed "/${string}/"q ${opf} | sed -n '$='`
echo $n
pos=`sed -n "1,${n}"p zd|sed -n '/d/'=|sed -n '$p'`
echo $pos
文件内容
d
d
d
^L
zd
dd
dsaa
zd
l
zd
l
zd
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP