ae.*_*ae. 5 bash grep alias find
如何将以下命令转换为bash别名?
find . -name '*.php' | xargs grep --color -n 'search term'
Run Code Online (Sandbox Code Playgroud)
我可以在哪里指定文件扩展名和'搜索词'显然是搜索词:)
所以我想做的是:
searchFiles 'php' 'search term'
Run Code Online (Sandbox Code Playgroud)
如何将输入传递给别名?我应该只创建一个bash脚本并将别名指向脚本吗?
如何使用功能?将其添加到.bashrc:
function searchFiles() {
find . -name \*."$1" -print0 | xargs -0 grep --color -n "$2"
}
Run Code Online (Sandbox Code Playgroud)
然后使用它像:
$ searchFiles c include
你可以使用一个别名,但是使用像Gonzalo这样的函数来说,这是理所当然的事情.
alias searchFiles=sh\ -c\ \''find . -name \*."$1" -type f -print0 | xargs -0 grep --color -Hn "$2"'\'\ -
Run Code Online (Sandbox Code Playgroud)
无论是功能或别名,我建议使用-print0与查找和-0使用xargs的.这提供了更强大的文件名处理(最常见的是文件名中的空格).