ファイルから2つの値を検索して比較するには? [閉鎖]

ファイルから2つの値を検索して比較するには? [閉鎖]

ファイルの最初の2行から2つの値をどのように検索して比較できますか?次のテキストがあります。

05-24-2016, 2:59:32,0,0
05-24-2016, 2:59:37,0,0
05-24-2016, 2:59:42,0,0
05-24-2016, 2:59:47,0,0
05-24-2016, 2:59:52,0,0
05-24-2016, 2:59:57,0,0
05-24-2016, 3:00:02,0,0

特定の列(2:59:52など)の最初の行の値を比較し、秒単位で違いを確認する必要があります。

次のコマンドを使用していますが、まだ理解していません。

awk '{ print $2 }' <filename>

最初の2行の違いのみが必要です(残りの行は無視する必要があります)。

ベストアンサー1

このシェルスクリプトは、最初の2行の2番目の列のタイムスタンプ間の違い(秒単位)を取得します。

( IFS=, read -r _ a _; IFS=, read -r _ b _; a=$(date --date $a +%s); b=$(date --date $b +%s); echo "$a - $b" | bc | tr -d - ) <filename

必要に応じて、次のように分割することもできます。

(
    IFS=, read -r junk a junk        # Get second comma separated field
    IFS=, read -r junk b junk
    a=$(date --date $a +%s)          # Convert to seconds since the epoch
    b=$(date --date $b +%s)
    echo "$a - $b" | bc | tr -d -    # Compute signed difference, then discard unary minus sign
) <filename

おすすめ記事