次の形式のファイルがあります。
トレースプロセスの開始17 134 17 136 17 137 17 138(/ usr / sbin / nginx)... [1465461983910514] pid:17136 get/ 合計:244us、accept()〜ヘッダー読み取り:19us、書き換え:9us、事前アクセス:13us、アクセス:9us、コンテンツ:137us アップストリーム:接続=0us、最初のバイトまでの時間=0us、読み取り=0us [1465461983911223] pid:17136 GET /sfi9876 合計:110us、accept()〜ヘッダー読み取り:12us、書き換え:13us、事前アクセス:20us、アクセス:13us、コンテンツ:137us アップストリーム:接続=0us、最初のバイトまでの時間=0us、読み取り=0us [1465461983911949] pid:17136 GET /lpt9 合計:127us、accept()〜ヘッダー読み取り:14us、書き換え:18us、事前アクセス:28us、アクセス:20us、コンテンツ:137us アップストリーム:接続=0us、最初のバイトまでの時間=0us、読み取り=0us [1465461983912121] pid:17136 GET /~sfi9876 合計:127us、accept()〜ヘッダー読み取り:11us、書き換え:24us、事前アクセス:37us、アクセス:26us、コンテンツ:137us アップストリーム:接続=0us、最初のバイトまでの時間=0us、読み取り=0us
各要求に費やされた合計時間を使用して、このログを次のようにソートしたいと思います。
トレースプロセスの開始17 134 17 136 17 137 17 138(/ usr / sbin / nginx)... [1465461983911223] pid:17136 GET /sfi9876 合計:110us、accept()〜ヘッダー読み取り:12us、書き換え:13us、事前アクセス:20us、アクセス:13us、コンテンツ:137us アップストリーム:接続=0us、最初のバイトまでの時間=0us、読み取り=0us [1465461983911949] pid:17136 GET /lpt9 合計:127us、accept()〜ヘッダー読み取り:14us、書き換え:18us、事前アクセス:28us、アクセス:20us、コンテンツ:137us アップストリーム:接続=0us、最初のバイトまでの時間=0us、読み取り=0us [1465461983912121] pid:17136 GET /~sfi9876 合計:127us、accept()〜ヘッダー読み取り:11us、書き換え:24us、事前アクセス:37us、アクセス:26us、コンテンツ:137us アップストリーム:接続=0us、最初のバイトまでの時間=0us、読み取り=0us [1465461983910514] pid:17136 get/ 合計:244us、accept()〜ヘッダー読み取り:19us、書き換え:9us、事前アクセス:13us、アクセス:9us、コンテンツ:137us アップストリーム:接続=0us、最初のバイトまでの時間=0us、読み取り=0us
したがって、bashスクリプトを使用してこれを行う方法を提案してください。
ベストアンサー1
通常のwhile read
ループを使用してから、read
ループ内で2回使用して、各グループの2行目と3行目を読み取ることができます。
while read -r line1; do
read -r line2
read -r line3
...
done