【问题标题】:Linux unary operator to check exitence of file with pattern nameLinux一元运算符检查具有模式名称的文件是否存在
【发布时间】:2012-11-27 15:52:28
【问题描述】:

我想检查给定路径中是​​否存在名称与给定模式匹配的文件。

assert=1
myPatternpath=$HOME/folderName/abcMYPATTERN.xml
if [ ! -f $myPatternpath ] 
then assert=0 
fi
echo $assert;

MYPATTERN 应该是任何字符。

编辑:

MYPATTERN 可以是例如:*

谢谢

【问题讨论】:

  • 你能举一些模式的例子吗?在您的问题中,它看起来像一个普通文件。你是说正则表达式吗?
  • 是的,一个正则表达式,比如 * 。我已经尝试过这种方法,但它不起作用。
  • find . -regex $myPatternpath 呢?

标签: linux file pattern-matching unary-operator


【解决方案1】:

所以,这不是您想要的正则表达式,而是通配符。在这种情况下,您可以执行以下操作:

for file in $HOME/folderName/*.xml; do
    if [ ! -f $file ] then assert=0; fi
done
echo $assert;

当然,因为您正在浏览文件,所以 -f 是隐含的。如果检查它是否是文件夹、可读等,这仍然很有用......

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-29
    • 1970-01-01
    • 1970-01-01
    • 2014-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多