私の目標は、今月ディレクトリに生成されたファイルをインポートすることです。
コマンドは正しいようですが、結果はレンダリングされません。
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}"
つまり、注目すべき2つのことがあります。
出力にリストされている時間は
ls -l
タイムスタンプです。つまり、ファイルが作成されたときではなく、ファイルが最後に変更された時間です。ファイル作成時間はせいぜい信頼できない最悪の場合は使用できません。-
find
代わりに、次のように使用してください。チリコフの回答。