grep在Linux与Unix下的区别

careers1111 2013-09-13 10:42:45
通过grep可以在指定的文本中将某个字符串给我搜出来,并且将其上下指定行数也给查询出来,如下:
grep -10 '15130fe9-8514-4fdc-ab20-38746b0068ad' server01.log >abc.xml

在Linux下可以执行没有问题, 但是在UNIX下执行有问题;
在UNIX下只能是
grep '15130fe9-8514-4fdc-ab20-38746b0068ad' server01.log >abc.xml

如何在Unix下将之前字符串的上下N行给搜出来,谢谢大拿们;
...全文
134 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
careers1111 2013-09-14
  • 打赏
  • 举报
回复
引用 9 楼 Cecil_911 的回复:
sed我不是很会用,这样试试行不行
sed -n '/15130fe9-8514-4fdc-ab20-38746b0068ad/=' server01.log
抓到行数 然后根据这个行数比如说n,你要找之前10行之后10行的,令p=n-10,1=n+10
sed -n "${p},${q}p server01.log"  
多谢大师
careers1111 2013-09-13
  • 打赏
  • 举报
回复
之前在unix下执行 grep -10 '15130fe9-8514-4fdc-ab20-38746b0068ad' server01.log >abc.xml 提示语法错误,要命吧
qiyu1988 2013-09-13
  • 打赏
  • 举报
回复
unix 上 grep 没有 -A -B -C 选项吗?
ceclinux 2013-09-13
  • 打赏
  • 举报
回复
sed我不是很会用,这样试试行不行
sed -n '/15130fe9-8514-4fdc-ab20-38746b0068ad/=' server01.log
抓到行数 然后根据这个行数比如说n,你要找之前10行之后10行的,令p=n-10,1=n+10
sed -n "${p},${q}p server01.log"  
careers1111 2013-09-13
  • 打赏
  • 举报
回复
引用 7 楼 ljc007 的回复:
[quote=引用 5 楼 careers1111 的回复:] 错了 应该把unix 粘出来
算了,不等你啦。 如果是Solaris,试试/usr/xpg4/bin/grep 如果是HP-UX或者AIX,那就不要指望grep了,一般是用sed/awk来搞定。[/quote] 大师下午有点忙,多谢您答复谢谢;
ljc007 2013-09-13
  • 打赏
  • 举报
回复
引用 5 楼 careers1111 的回复:
错了 应该把unix 粘出来
算了,不等你啦。 如果是Solaris,试试/usr/xpg4/bin/grep 如果是HP-UX或者AIX,那就不要指望grep了,一般是用sed/awk来搞定。
Hony杨 2013-09-13
  • 打赏
  • 举报
回复
man grep慢慢看!
careers1111 2013-09-13
  • 打赏
  • 举报
回复
错了 应该把unix 粘出来
careers1111 2013-09-13
  • 打赏
  • 举报
回复
Linux shengchan 2.6.32-279.el6.x86_64 #1 SMP Wed Jun 13 18:24:36 EDT 2012 x86_64 x86_64 x86_64 GNU/Linux
ljc007 2013-09-13
  • 打赏
  • 举报
回复
uname -a
把结果贴出来看看

18,777

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 专题技术讨论区
社区管理员
  • 专题技术讨论区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧