awk 未呈現任何結果

awk 未呈現任何結果

我的目標是獲取當前月份在目錄中建立的檔案。

看起來命令是正確的,但沒有呈現任何結果:

Date=`date '+%b'`

echo $Date
Oct

ls -l | awk -v d="$Date" '/d/ {print $NF}'

答案1

你應該這樣使用它:

ls -l | awk -v d="$Date" '$0 ~ d {print $NF}'

解釋是這裡

find但在您的腳本中使用可能會更好。

find . -maxdepth 1 -type f -daystart -ctime -`date "+%d"`

如果你有經典awk而不是gawk

find * -prune -type f -cmin -`date '+%d %H %M' | awk '{print ($1*24+$2)*60+$3}'`

答案2

這裡的問題是awk無法告訴d模式內部是否意味著表示該名稱的變數:awk正在嘗試匹配文字d。您可以使用參數擴充來代替:

ls -l | awk "/$Date/ {print \$NF}"

也就是說,有兩件事要注意:

相關內容