簡體   English   中英

檢查文件是否存在於regex Linux指定的目錄中

[英]Check if file exists in a directory specified by regex Linux

我正在嘗試在文件運算符中使用regex來查找其中一個用regex指定一個子目錄的文件,但是我想知道是否有可能。 我想我嘗試了所有可能的引號和括號組合。 我在這里缺少什么,還是文件操作符需要特定的路徑?

我不太確定。 有人可以澄清一下嗎?

我想要實現的是這樣的事情(這顯然不起作用,因為它將正則表達式部分作為子目錄的名稱)

if [[ -r '/agent/[0-9 .]*/bin/run.sh' ]]

查找具有-regex選項

-regex模式

文件名與正則表達式模式匹配。 這是整個路徑上的匹配項,而不是搜索。 例如,要匹配名為./fubar3', you can use the regular expression的文件./fubar3', you can use the regular expression 。* bar。 .*b.*3 ,而不是f.*r3 find可以理解的正則表達式默認是Emacs正則表達式,但是可以使用-regextype選項進行更改。

if find . -regex '/agent/[0-9 \.]*/bin/run.sh'

根據手冊 ,僅=〜運算符進行正則表達式匹配。

但是還有另一種方法:

RUNFILES=$( find /agent -name run.sh | grep -e '^/agent/[0-9 .]*/bin/run.sh$' )
if [ -n "$RUNFILES" ]
then
[...]
fi

您可以簡單地使用ls命令和正則表達式:

if ls /agent/[0-9\ .]*/bin/run.sh

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM