1 查询字符串所在的行号
grep -n "xxx" str.txt # -n 打印字符 “xxx” 在文件 “str.txt” 所在的行数前缀
示例:
str.txt
xxx
yyy
zzz
xxx
输入查找命令: grep -n "xxx" str.txt
结果如下:
1:xxx
4:xxx
行号1,4在前,匹配字符串“xxx”在后,两者之间用冒号 “:” 隔开
2 查找字符串首次匹配的行号
grep -n "xxx" str.txt | head -1
结果如下:
1:xxx
同理,查找最后一次匹配的行号
grep -n "xxx" str.txt | tail -1
结果如下:
4:xxx
查找字符串第二次匹配的行号
grep -n "xxx" str.txt | head -2 | tail -1 # 先取出前两行,然后取最后一行
结果如下:
4:xxx
3 提取字符串所在的行号
grep -n "xxx" str.txt | cut -d ":" -f 1
先查询字符串 “xxx” 所在的全部行号,然后利用 cut 命令分割“:”字符,提取第一个字段,即行号
结果如下:
1
4
提取首次匹配的行号
grep -n "xxx" str.txt | head -1 | cut -d ":" -f 1
结果如下:
1
4 比较两次字符串行号变化幅度
两个文件内容: str.txt 和 str2.txt
str.txt
xxx
yyy
zzz
xxx
str2.txt
yyy
xxx
www
zzz
比较行号脚本
catline.sh
执行脚本命令:
./catline.sh str2.txt str.txt
运行结果如下:
-
顶
- 4
-
踩
- 0
-
猜你在找
核心技术类目
- 个人资料
-
- 访问:9221820次
- 积分:76290
- 等级:
- 排名:第11名
- 原创:678篇
- 转载:169篇
- 译文:16篇
- 评论:2898条
2楼 nehc 2013-01-14 15:19发表 [回复]-
-
a.sh (脚本)
b.bin (二进制)
cat a.sh b.bin > c.data
grep -n aaa c.data
1楼 nehc 2013-01-13 11:38发表 [回复]-
-
全是在文本文件中查找,请问怎么在二进制文件查找并输出行号
Re: deping_chen 2013-01-13 13:35发表 [回复]-
-
回复nehc:二进制文件有行号吗?
Re: 阳光岛主 2013-01-13 12:33发表 [回复]-
-
回复nehc:二进制从什么类型的文件转来的