いくつかのチュートリアルといくつかのStackOverflowの記事を見てみましたが、日付が使用されるsedまたはawkを使用する例は見たことがありません。最初の行にはこの内容を含むテキストファイルがあり、スクリプトを使用して日付を現在の日付と時刻に置き換える必要があります。 Linuxでこれを行う最も簡単な方法は何ですか?
再生時間: 2014-03-31 13:56:01
sed や awk など、標準の Ubuntu インストールで提供されているすべてのツールを使用できます。
答え1
最も簡単な方法は、その文字列を使用してsed
正しい文字列に置き換えることです。したがって、現在の時間が次のような場合は、2014-04-02 21:34:13
簡単に実行できます。
sed 's/2014-03-31 13:56:01/2014-04-02 21:34:13/' file
これを動的に実行したいので、sed
関連する呼び出しの結果を渡すことができますdate
。
sed "s/2014-03-31 13:56:01/$(date '+%F %T')/" file
コマンドの周囲に二重引用符("
)があることに注意してくださいsed
。これはdate
コマンドの実行に必要です。
答え2
最初の行を予想されるタイムスタンプに置き換えるには、次のようにします。
sed "1c TS: $(date '+%F %T')"
先頭の1は最初の行を表し、c
これは「この行を次の文字列に置き換えます」を意味します。$(...)
指定されたコマンドの出力を挿入します。man date
詳しくはこちらをご覧ください。