Linux

grep + 正則表達式以匹配 uniq 編號

  • January 21, 2013

我的目標是驗證 $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 不會按預期工作。

引用自:https://serverfault.com/questions/459302