Linux 行末的BASH grep模式文件名
我刚刚启动了bash,我正在做一个搜索脚本来搜索文件和grep模式。简单的想法:Linux 行末的BASH grep模式文件名,linux,bash,shell,Linux,Bash,Shell,我刚刚启动了bash,我正在做一个搜索脚本来搜索文件和grep模式。简单的想法: find $HOME -type f | grep $1 在当前脚本中,我匹配包含$1(文件和目录)的所有内容。我只想匹配文件名中的模式,不想匹配路径中的目录。我尝试了很多带有“/.*^$”等符号的高级表达式。。对于一个新用户来说,在某个特定的部分进行grep,但老实说,这有点困难 “剪切工具”不是选项,因为我需要文件的路径 编辑: 正确的例子: $ ./search test /home/user/docum
find $HOME -type f | grep $1
在当前脚本中,我匹配包含$1(文件和目录)的所有内容。我只想匹配文件名中的模式,不想匹配路径中的目录。我尝试了很多带有“/.*^$”等符号的高级表达式。。对于一个新用户来说,在某个特定的部分进行grep,但老实说,这有点困难
“剪切工具”不是选项,因为我需要文件的路径
编辑:
正确的例子:
$ ./search test
/home/user/documents/test.txt
/home/user/downloads/blahtestblah.py
错误示例:
$ ./search test
/home/user/test/whatever.txt
在不正确的示例中,grep匹配路径中的关键字,匹配目录。
^
匹配字符串的开头。尝试:
find $HOME -type f | grep "/.*$1$"
您也可以使用-regex
开关切换到find
,而不是通过管道将输出传输到grep
:
find $HOME -type f -regex ".*$1$"
您能否向我们展示一个实际的示例输入和您期望从iTunes
basename
中获得的输出,比如find$HOME-type f | grep$(basename$1)
,但您为什么这样做呢?这不是一种有效的方法,find
可以在没有grep
Ty的情况下完成,但不起作用。我使用grep是因为关键字必须在名称中,而不仅仅是名称本身。用一些例子编辑你应该通过查找教程,我认为你缺少了它的一些基本功能。也许吧。祝你好运,但差不多!,您的第一个脚本在扩展部分中匹配。例如,如果执行此操作,“/search py”将返回所有.py文件。