我正在尝试使用 grep 在用户的 bin 文件夹中自动定位 bibtex 程序。
问题是,它经常返回一个名为 bibtex 的目录,这意味着脚本无法自动运行命令。
如何强制 grep (或者实际上是 locate 命令)自动忽略目录?
编辑:当前命令是:locate bibtex | grep "/bibtex$" -d skip | head -n1
find
命令?
find /bin -name bibtex -type f
查找类型为“f”的文件名“bibtex”,这是一个常规文件。
locate --basename '\bibtex' --limit 1
消除了grep
and的需要head
,但仍然没有解决结果是否是目录的问题。
你为什么不这样做:
type -P bibtex
哪个将在该PATH
名称中查找程序?
我不完全理解,所以也许我的解决方案是错误的:你为什么不使用which?或者bibtex不在PATH中?
叹息,不是我最干净的,但它有效。perl -ne 'chomp($f=$_);print if !-d $f'
这使您的命令locate bibtex | perl -ne 'chomp($f=$_);print if !-d $f' | grep "/bibtex$" -d skip | head -n1