awkとdateコマンドを一緒に試してください

awkとdateコマンドを一緒に試してください

ls -l今月、最後に変更されたファイルのみを使用してフィルタリングしたいと思います。実行中:ls -l | awk '{if($6 == date +%b) print$0;構文エラーが発生しました。

awkとスクリプトバッシングで引用符を正しく使用する方法に関する簡単なルールをインターネット全体で見つけましたが、わかりません。私のプログラミング経験にもかかわらず、私はこれが非常に混乱しているので、この特定の状況に対処する具体的な答えよりも、これらの質問に対する一般的な答えを歓迎します。

ベストアンサー1

dateおそらく、コードでこれを何度も呼び出したくないでしょう。ランタイム中は「スケジュール」します。だから私たちはそれをプリセットして変数として渡すことができます

例えば

ls -l | awk -v month="$(date +%b)" '$6 == month { print }'

今月から始まったが1年以上経過したファイル(2015年8月から)、月名にスペースが含まれているロケールにある場合、またはファイル名に改行文字が含まれている場合、この操作は失敗します。 lsの出力を解析するにはリスクがあります。

おすすめ記事