私はいくつかの異なるシステムでビルドの進行状況をポーリングするbashスクリプトを使用しています。ビルドが完了したらstat
ログファイルを生成して最後の編集時間を見つけ、date
ビルドが完了したときに人間が読める出力を生成するための時間を提供します。
これはいくつかの異なるシステムで実行されるため、出力は次のようになります。
sys00 finished around: 2015-06-11 01:42:29.484345955 -0700
sys01 finished around: 2015-06-11 01:21:17.560101447 -0700
sys02 finished around: 2015-06-11 03:51:56 -0700
sys03 finished around: 2015-06-11 04:32:12 -0700
sys04 finished around: 2015-06-11 01:40:47.977893386 -0700
sys05 finished around: 2015-06-11 01:16:12.158137851 -0700
私の最初の優先順位はそれらを同じように見せることでしたが、最初と最後の2つのシステムの追加の精度が必要ではなかったので、単に切り取りたいと思いました。私はこれをしようとしましたawk
:
echo $TIME | awk '[0-9]{9} {gsub('', '[0-9]{9}')}' -
しかし、ほとんど成功していませんでした。私はsed
それがより適切なツールであるかどうかを判断するのに十分な慣れていません。date
そうしないように指示できるかどうかはわかりません。date
現在使用しているコマンドは次のとおりです。
COMMAND='date -r `stat -f "%m" '"$BASENAME"'/../logs/catTest*.log |& head -n1` +"%Y-%m-%d %H:%M:%S %z"'
($BASENAME
ログファイルの検索に使用するデフォルトパスはどこにありますか?)
月経後に迷惑な数字を削除する方法は?
ベストアンサー1
答えを得るには、sed
それを使用して小数点以下の桁数をフィルタリングできます。
sed 's/\.[0-9]\{1,\}//'
仕組み:
\.
テキストと一致.
[0-9]\{1,\}
1 つ以上の数字と一致
結果パターンは、「リテラル.
と1つ以上の数字が続く一致」を意味し、それを何でも置き換えます。