免费注册 查看新帖 |

Chinaunix

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

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

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

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

你是要在文件zd中查找zd的第一次出现的行号?
  1. var1=zd
  2. var2=zd
  3. sed -n "/${var1}/{=;q;}"  ${var2}
复制代码


  1. sed -n "/zd/{=;q;}"  zd
复制代码

请将你的屏幕全复制下来,贴出来!

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

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

原帖由 "zd4281" 发表:
var1=zd
var2=zd
sed "/${var1}/"q ${var2}|sed -n '$='
错误提示:
/zd/q: not found
   

  1. $cat testtext
  2. 111
  3. 222
  4. 333
  5. 444
  6. 222
  7. 555
  8. 222      
  9. $cat haha
  10. var1=222
  11. var2=testtext
  12. sed "/${var1}/"q ${var2}|sed -n '$='
  13. echo $LINE
  14. $haha
  15. 2
复制代码

在我这里是没有问题的啊

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

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

zengde#findrows zd zd
findrows: -n: not found

在命令行里没问题,但放在shell中就出问题!

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

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

原帖由 "zd4281" 发表:
zengde#findrows zd zd
findrows: -n: not found

在命令行里没问题,但放在shell中就出问题!
   
你的findrows脚本的的内容是什么?

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

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

如果你作的不是涉及国家安全工作的话,我提一个非分的要求,把你的代码贴出来看看

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

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

n=sed -n "/${string}/"q ${filename} | sed -n '$='
这是我在shell中的句子

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

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

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 -n "/${string}/"q ${filename} | sed -n '$='
echo $n

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

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

原帖由 "zd4281" 发表:
n=sed -n "/${string}/"q ${filename} | sed -n '$='
这是我在shell中的句子
   
请帖出整个脚本内容

你这里的变量string和filename是从哪里取值的?如果如你上面findrows zd zd运行脚本的话,建议将脚本中此行命令改为:
  1. n=sed -n "/${1}/"q ${2} | sed -n '$='
复制代码

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

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

我的脚本还没写完找到了匹配串的位置后还要向上找ctrl-l这个换页符然后将换页符及以上的行全删除掉.请两位多帮忙,太感谢你们了!

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

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

看来你需要好好补一下基础了!
看看置顶得帖子,加把油!
原帖由 "zd4281" 发表:
n=sed -n "/${string}/"q ${filename} | sed -n '$='
这是我在shell中的句子

是谁说得可以这样赋值的!?

n=`sed -n "/${string}/"q ${filename} | sed -n '$='`
其他的方法试了?
怎么作的?一一说来看看!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP