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
そしてstrftime
GNU awk(および他のいくつかの)の機能を使用してください。
awk '{ gsub( /ISODate[(]["][0-9]{4}([-][0-9]{2}){2}["][)]/ , "ISODate(\"" strftime("%F") "\")" )}1
' rasoul-02.json