行尾

时间:2017-09-18 13:29:01

标签: linux bash shell

我刚刚开始使用bash,我正在编写一个搜索文件并搜索模式的搜索脚本。简单的想法:

find $HOME -type f | grep  $1

在当前脚本中,我匹配包含$ 1(文件和目录)的所有内容。我只想匹配文件名中的模式,我不想匹配路径中的目录。我用#34; /.*^$"等符号尝试了许多高级表达式;等等。在一个特定的部分grep,但老实说,对于一个新用户来说有点困难。

剪切工具不是一个选项,因为我想要文件的路径。

编辑:

正确例子:

$ ./search test
/home/user/documents/test.txt
/home/user/downloads/blahtestblah.py

错误示例:

$ ./search test
/home/user/test/whatever.txt

在错误的示例中,grep匹配路径中的关键字,匹配目录。

1 个答案:

答案 0 :(得分:1)

^匹配字符串的开头。尝试:

find $HOME -type f | grep  "/.*$1$"

您也可以使用-regex切换到find,而不是将输出汇总到grep

find $HOME -type f -regex ".*$1$"