bashスクリプトを使用してループからn行を読み取る

bashスクリプトを使用してループからn行を読み取る

次の形式のファイルがあります。

トレースプロセスの開始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

おすすめ記事