我需要將日誌的文件名存儲到變量中,以便我的腳本可以對日常日誌文件執行一些檢查。這些日誌通常具有不同的名稱,因爲它們在名稱中有時間戳。目前,我正在使用hodge podged方法來管理ls命令sed,sort,cut和tail以獲取名稱。
CRON_LOG=$(ls -1 $LOGS_DIR/fetch_cron_{true,false}_$CRON_DATE*.log 2> /dev/null | sed 's/^[^0-9][^0-9]*\([0-9][0-9]*\).*/\1 &/' | sort -n | cut -d ' ' -f2- | tail -1)
UPDATE:
$ CRON_DATE作爲參數傳遞給腳本提供。這是創建日誌的日期(至今)。有時會有多個日誌在同一天存在,所以我希望這可以獲得最近的日誌。
一些典型的文件名:
fetch_cron_false_031810090452.log
fetch_cron_true_031310090001.log
等等
請記住,這個工程原樣。我只是覺得這很醜陋,而且正試圖找到一個更好的方法來實現它。
我很確定我從幾個月前發現谷歌的一些東西一起kluged這一點。它現在有效,但我對這項技術並不滿意。我有一些關於如何更好地實現這一點的想法,但是我之前在這個網站上取得了巨大的成功,並且認爲最好先引用stackoverflow神。所有的答案非常感謝。
感謝, 瑞安
您需要在此處提供更多輸入。典型的文件名是什麼?你想得到什麼日誌文件?什麼是'$ CRON_DATE'? – 2010-03-18 22:45:54
已更新。謝謝你的提示。 – SDGuero 2010-03-18 22:59:16
我會告訴你現在會改善這種情況 - 將這一過程分解爲幾項操作。做一個這樣的單線程是稍後查看代碼並讓自己做facepalm的好方法。可讀性總是比聰明的更好; 0) – 2010-03-18 23:01:41