我有一個用戶數組,我需要查看文件的所有者(logfile.log)是否存在於數組中。使用awk我能夠拉動所有者($ 3),但是當我使用try來查看$ 3是否在用戶中時,我在if語句的開始處得到語法錯誤。我有限的理解是,awk不喜歡語法。在awk中執行IF語句
user=('michael' 'mark' 'luke' 'john' 'phil' 'sam' 'kevin');
ls -ldL logfile.log 2>/dev/null |
/bin/awk '{
Result = $NF ":\tPermissions=" $1;
if ([[ "${user[*]}" =~ (^|[^[:alpha:]])$3([^[:alpha:]]|$) ]]) {
Result = Result "\tOwner=SUPPORT";
}
else {
Result = Result "\tOwner=" $3;
}
print Result;
}'
您能否提供樣本輸入和輸出?目前還不清楚你的awk代碼試圖做什麼。此外,使用'stat'獲取日誌文件的所有者可能比試圖分析'ls'的輸出更容易。 – chepner
使用bash/ksh病例語句。 'case $ fileOwner in michael | mark | luke | john | phil | sam | kevin)Owner = Support ;; *)所有者=「其他」;; esac'祝你好運。 – shellter
本質上,我想說如果所有者在數組中,那麼將awk $ 3更改爲SUPPORT。如果其他東西沒有對變量做任何事情。 – user3277026