Linux
grep + 正則表達式以匹配 uniq 編號
我的目標是驗證 $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”
[[ ` echo $FILE | grep -v '[0-9]\{4\}\.[0-9]\{2\}\.[0-9]\{2\}\.[0-9]\{2\}' ` ]] && echo Not Backup file
內聯命令替換返回命令的輸出,而不是返回碼
` echo $FILE | grep -v '[0-9]\{4\}\.[0-9]\{2\}\.[0-9]\{2\}\.[0-9]\{2\}' `
將返回一個空字元串,而不是零。因此,這個 oneliner 不會按預期工作。