ファイルの最初の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