奇妙な時間検索

奇妙な時間検索

Linuxにはテキストファイルがあり、awkを使用して日付部分を変更して現在の日付を入力したいと思います。もちろん、私はこれを書いて動作しますが、手動で日付を指定する必要があります。私が望むのは、自動的に今日の日付を変更することです。

パスワード:

awk '{gsub(/ISODate\(\"[0-9][0-9][0-9][0-9][-][0-9][0-9][-][0-9][0-9]/,"ISODate(\"2022-10-02");print}' rasoul-02.json

ベストアンサー1

今日の日付をISO形式にインポートする方法はいくつかあります。

  • 外部コマンドを使用します。date +'%F'
  • シェルコマンドを使用してください。printf '%(%F)T\n' -1
  • いくつかのawkバージョンでは:strftime("%F")

最も汎用性のある(ポータブル)ソリューションは、次のものを使用することですdate

awk '{gsub(/ISODate\([0-9]{4}([-][0-9]{2}){2}\)/,"ISODate("isodate")")}1
    ' isodate=$(date +'%F') rasoul-02.json

シェルの内部日付形式を使用する可能な解決策は次のとおりです。

$ printf -v isodate '%(%F)T' '-1';
$ awk '{gsub(/ISODate[(]["][0-9]{4}([-][0-9]{2}){2}["][)]/,"ISODate(===\""isodate"\")")}1
      ' isodate=$isodate rasoul-02.json

そしてstrftimeGNU awk(および他のいくつかの)の機能を使用してください。

awk '{ gsub( /ISODate[(]["][0-9]{4}([-][0-9]{2}){2}["][)]/ , "ISODate(\"" strftime("%F") "\")" )}1
      ' rasoul-02.json

おすすめ記事