-1

UNIX 環境では、次の詳細を含む file.txt があります。

Data recording started:
0001100 Matched at 412090
0001101 Mismatched at 414798
0001102 Matched at 420007
0001103 Mismatched at 420015
Job completed

"Matched" (2 行目) の単語と最初の "Mismatched" (3 行目) の単語を検索して最初の Matched 値を取得するにはどうすればよいですか?それらの差を見つけて、変数 "dif" として保存します。結果は Matched マイナスです一致しないため、行番号を指定してデータを見つけることができません。つまり、行 3 の最後の整数から行 2 の最後の整数を引いたものを検索します。

Data recording started:
0001100 Mismatched at 412090
0001101 Matched at 414798
0001102 Mismatched at 420007
0001103 Matched at 420015
Job completed
4

2 に答える 2

0

一方通行:

echo $(( 
      $(grep Matched input | head -1 | sed 's/.*at //') 
    - $(grep Mismatched input | head -1 | sed 's/.*at //') 
))

またはsedのみを使用:

echo $(( 
      $(sed -n 's/.*Matched.*at //p' input | head -1) 
    - $(sed -n 's/.*Mismatched.*at //p' input | head -1) 
))

出力

-2708
于 2013-03-29T07:18:18.223 に答える