BashはテキストHHMMSSをHH:MM:SSに変換します。

BashはテキストHHMMSSをHH:MM:SSに変換します。

タイムスタンプ(最初の列)がHHMMSS形式のcsvログファイルを読み込んでいます。ここで、HHは時間(0-23)、MMは分(0-59)、SSは2番目(0-59)です。 。

ファイルを読み取り、列データに対してさまざまな変換を実行して、タイムスタンプが変数(CURRTYMEなど)に含まれるようにしました。私の現在の変換は次のとおりです

# Data will have leading zeros and will always be 6 characters
CURRTYME="073031"
NEXTTYME=`echo $CURRTYME | sed 's/./&:/2'`
LASTTYME=`echo $NEXTTYME| sed 's/./&:/5'`
echo $LASTTYME

これは挿入を実行する最良の方法ですか、それとも1つのsedステートメントで実行できますか?

ベストアンサー1

#!/bin/bash

CURTIME="073031"

echo $CURTIME | sed "s|\(..\)\(..\)\(..\)|\1:\2:\3|"
echo $CURTIME | cut -c-2,3-4,5- --output-delimiter=:

echo ${CURTIME:0:2}:${CURTIME:2:2}:${CURTIME:4:2}

最後の項目は必須ですbash

それとも行くかもしれませんが、awkそんなに小さなことをするのはとても過度だと思います。

おすすめ記事