免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 5462 | 回复: 11

grep 问题,做了一个grep 的别名 grepch='grep --include=*.[chCH] -rn --file=./' [复制链接]

论坛徽章:
0
发表于 2011-12-12 17:47 |显示全部楼层
想实现这样的用法:
grepch PATTERN

也就是不用在PATTERN 后面加上FILE,用下面的别名不能实现目的:
alias grepch='grep --include=*.[chCH] -rn --file=./'

请教正确的做法是怎样呢?

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
发表于 2011-12-12 20:13 |显示全部楼层
不加FILE,你让它搜索哪个文件?

论坛徽章:
0
发表于 2011-12-12 22:34 |显示全部楼层
我是想搜索当前目录所有文件和子目录

论坛徽章:
381
CU十二周年纪念徽章
日期:2014-01-04 22:46:58CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-03-13 15:38:15CU大牛徽章
日期:2013-03-13 15:38:52CU大牛徽章
日期:2013-03-14 14:08:55CU大牛徽章
日期:2013-04-17 11:17:19CU大牛徽章
日期:2013-04-17 11:17:32CU大牛徽章
日期:2013-04-17 11:17:37CU大牛徽章
日期:2013-04-17 11:17:42CU大牛徽章
日期:2013-04-17 11:17:47CU大牛徽章
日期:2013-04-17 11:17:52CU大牛徽章
日期:2013-04-17 11:17:56
发表于 2011-12-13 09:09 |显示全部楼层
本帖最后由 chenyx 于 2011-12-13 14:53 编辑

楼主尝试写一个函数,放到~/.bash_profile里面
  1. grepch () {
  2. /bin/grep $1 -rn *
  3. }
复制代码
我的比较简单,你根据实际情况,自己修改下

论坛徽章:
381
CU十二周年纪念徽章
日期:2014-01-04 22:46:58CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-03-13 15:38:15CU大牛徽章
日期:2013-03-13 15:38:52CU大牛徽章
日期:2013-03-14 14:08:55CU大牛徽章
日期:2013-04-17 11:17:19CU大牛徽章
日期:2013-04-17 11:17:32CU大牛徽章
日期:2013-04-17 11:17:37CU大牛徽章
日期:2013-04-17 11:17:42CU大牛徽章
日期:2013-04-17 11:17:47CU大牛徽章
日期:2013-04-17 11:17:52CU大牛徽章
日期:2013-04-17 11:17:56
发表于 2011-12-13 09:11 |显示全部楼层
或者,在/bin下写一个grepch的脚本,赋予grepch脚本x权限,应该也可以实现你的需求

论坛徽章:
0
发表于 2011-12-13 14:45 |显示全部楼层
本帖最后由 reer 于 2011-12-13 14:46 编辑

首先谢谢chenyx 啊!

在 ~/.bash_profile 里加了上上个帖子里的内容后,source ~/.bash_profile 的时候提示报错:
bash: /home/pax/.bash_profile: line 19: syntax error near unexpected token `('
bash: /home/pax/.bash_profile: line 19: `grepch()'

论坛徽章:
381
CU十二周年纪念徽章
日期:2014-01-04 22:46:58CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-03-13 15:38:15CU大牛徽章
日期:2013-03-13 15:38:52CU大牛徽章
日期:2013-03-14 14:08:55CU大牛徽章
日期:2013-04-17 11:17:19CU大牛徽章
日期:2013-04-17 11:17:32CU大牛徽章
日期:2013-04-17 11:17:37CU大牛徽章
日期:2013-04-17 11:17:42CU大牛徽章
日期:2013-04-17 11:17:47CU大牛徽章
日期:2013-04-17 11:17:52CU大牛徽章
日期:2013-04-17 11:17:56
发表于 2011-12-13 14:48 |显示全部楼层
sorry,写错了,应该缺个空格,帖子我编辑了,你试试修改下

论坛徽章:
0
发表于 2011-12-13 14:57 |显示全部楼层
sorry,chenyx ,这个报错不是空格的原因,原来是我在 /etc/bashrc里设置过:
alias grepch='grep --include=*.[chCH] -rn'

所以在 ~/.bash_profile 里再设置同样名字的 grepch 的时候才报这个错。

我把名字改一下,改成gch就可以了,没有gch后面没有空格也不会错了:
gch()
{
/bin/grep $1 -rn *
}

再次感谢 chenyx!

论坛徽章:
381
CU十二周年纪念徽章
日期:2014-01-04 22:46:58CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-03-13 15:38:15CU大牛徽章
日期:2013-03-13 15:38:52CU大牛徽章
日期:2013-03-14 14:08:55CU大牛徽章
日期:2013-04-17 11:17:19CU大牛徽章
日期:2013-04-17 11:17:32CU大牛徽章
日期:2013-04-17 11:17:37CU大牛徽章
日期:2013-04-17 11:17:42CU大牛徽章
日期:2013-04-17 11:17:47CU大牛徽章
日期:2013-04-17 11:17:52CU大牛徽章
日期:2013-04-17 11:17:56
发表于 2011-12-13 15:00 |显示全部楼层
回复 8# reer


    哦,原来你已经在profile里面定义过alias了.好用就行.我的那个还比较粗糙,你自己修改下吧,比如添加判断$1是否存在,等

论坛徽章:
0
发表于 2011-12-13 15:04 |显示全部楼层
对了,我最后还是加到 /etc/bashrc里去了,这样所有的用户都可以用这个命令
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP