我的目标是验证 $FILE 是否是备份文件(备份文件以 xxxx.xx.xx.xx 结尾
备份文件示例
ls /etc/VRTSvcs/conf/config
main.cf.17Dec2012.09.10.14
main.cf.17Dec2012.09.10.23
main.cf.17Dec2012.09.10.31
不备份文件示例
main.cf
我编写以下 ksh 脚本行以验证 $FILE 是否以 xxxx.xx.xx.xx 号结尾
.
[[ ` echo $FILE | grep -v '[0-9]\{4\}\.[0-9]\{2\}\.[0-9]\{2\}\.[0-9]\{2\}' ` -eq 0 ]] && echo Not Backup file
我设置了
FILE="main.cf.17Dec2012.09.10.31"
我在 Solaris/Linux 上运行这一行,但我得到“Not Backup file”,尽管 $FILE 以 2012.09.10.31 结尾
请告知我的 ksh 行有什么问题(需要修复什么)以匹配数字 - xxxx.xx.xx.xx
只需删除“-eq 0”
内联命令替换返回命令的输出,而不是返回码
将返回一个空字符串,而不是零。因此,这个 oneliner 不会按预期工作。
为什么我们不能为此使用带有 BASH/KSH 的内置正则表达式?其中 FILE1 是您的回溯文件名称
此零的时间/CPU 利用率。您不必要地使用三个命令,
echo
两次和grep
一次。