質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

AWK

AWKは、UNIX 上で開発されたプログラミング言語で、CSVファイルなどのテキストファイルの処理を目的にデザインされています。

Q&A

解決済

2回答

1722閲覧

特定部分の数値を合計し、uniqし、他の行も含めて表示する方法

teityura

総合スコア84

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

AWK

AWKは、UNIX 上で開発されたプログラミング言語で、CSVファイルなどのテキストファイルの処理を目的にデザインされています。

0グッド

0クリップ

投稿2020/11/05 18:15

知りたいこと

特定の条件に一致した場合だけ、
特定部分の数値を合計し、
uniqし、
他の行も含めて表示するワンライナーを書きたいです。

この出力があって、

Seq-Read-QD32 bw:2153.13MB iops:2102 Seq-Write-QD32 bw:1974.72MB iops:1928 Rand-Read-4K-QD32-T8 bw:172.179MB iops:43044 Rand-Read-4K-QD32-T8 bw:172.151MB iops:43037 Rand-Read-4K-QD32-T8 bw:172.576MB iops:43144 Rand-Read-4K-QD32-T8 bw:172.208MB iops:43052 Rand-Read-4K-QD32-T8 bw:172.179MB iops:43044 Rand-Read-4K-QD32-T8 bw:172.151MB iops:43037 Rand-Read-4K-QD32-T8 bw:172.179MB iops:43044 Rand-Read-4K-QD32-T8 bw:172.236MB iops:43059 Rand-Write-4K-QD32-T8 bw:131.647MB iops:32911 Rand-Write-4K-QD32-T8 bw:131.039MB iops:32759 Rand-Write-4K-QD32-T8 bw:130.973MB iops:32743 Rand-Write-4K-QD32-T8 bw:129.342MB iops:32335 Rand-Write-4K-QD32-T8 bw:129.214MB iops:32303 Rand-Write-4K-QD32-T8 bw:129.087MB iops:32271 Rand-Write-4K-QD32-T8 bw:130.728MB iops:32682 Rand-Write-4K-QD32-T8 bw:129.838MB iops:32459

ワンライナー整形後、こうなってほしい

Seq-Read-QD32 bw:2153.13MB iops:2102 Seq-Write-QD32 bw:1974.72MB iops:1928 Rand-Read-4K-QD32-T8 bw:1377.859MB iops:344461 Rand-Write-4K-QD32-T8 bw:1041.868MB iops:260463

試したこと

awkとかsumを使うとできそうに思いますが、
特定部分を合計した結果だけ出せても、
・合計値の部分(2153.13)だけしか出せないとか、
・Seq-Readの行が消えちゃったりとかで、
「ワンライナー整形後、こうなってほしい」にできない状況です。

「この出力があって」はこうやって出していて、
mkdir -p /root/fio/target cd /root/fio/ cat << 'EOF' > fioconfig.txt [global] ioengine=libaio iodepth=1 size=1g direct=1 runtime=60 directory=./target stonewall [Seq-Read-QD32] iodepth=32 bs=1m rw=read [Seq-Write-QD32] iodepth=32 bs=1m rw=write [Rand-Read-4K-QD32-T8] numjobs=8 iodepth=32 bs=4k rw=read [Rand-Write-4K-QD32-T8] numjobs=8 iodepth=32 bs=4k rw=write EOF rm -rf /root/fio/target/ mkdir -p /root/fio/target cd /root/fio/ now=`date +%Y%m%d%H%M` time fio -f fioconfig.txt --output-format=terse > result_${now}.txt && \ cat result_${now}.txt | \ awk -F ';' '{print $3, "\tbw:"($7+$48)/1000 "MB\tiops:"($8+$49)}' | column -t
awkする前の内容(result_${now}.txt) はこうなっています
3;fio-3.7;Seq-Read-QD32;0;0;1048576;2421653;2364;433;33;279;39.756200;19.311529;2947;25228;13409.947988;3042.192726;1.000000%=3686;5.000000%=6258;10.000000%=10289;20.000000%=12779;30.000000%=13303;40.000000%=13434;50.000000%=13565;60.000000%=13697;70.000000%=13959;80.000000%=14614;90.000000%=16187;95.000000%=18219;99.000000%=21364;99.500000%=23461;99.900000%=24772;99.950000%=25296;99.990000%=25296;0%=0;0%=0;0%=0;3061;25265;13449.826671;3036.302322;0;0;0.000000%;0.000000;0.000000;0;0;0;0;0;0;0.000000;0.000000;0;0;0.000000;0.000000;1.000000%=0;5.000000%=0;10.000000%=0;20.000000%=0;30.000000%=0;40.000000%=0;50.000000%=0;60.000000%=0;70.000000%=0;80.000000%=0;90.000000%=0;95.000000%=0;99.000000%=0;99.500000%=0;99.900000%=0;99.950000%=0;99.990000%=0;0%=0;0%=0;0%=0;0;0;0.000000;0.000000;0;0;0.000000%;0.000000;0.000000;0.462963%;8.101852%;1016;0;537;0.1%;0.2%;0.4%;0.8%;1.6%;97.0%;0.0%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%;1.27%;7.91%;89.45%;1.37%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%;dm-3;2113536;2101981;0;0;1810478;2336091;4146569;91.45%;slaves;2113536;2113708;0;0;1803618;2256089;4059707;91.35%;dm-2;2113536;2113708;0;0;1803618;2256089;4059707;91.35%;slaves;1057341;1056854;0;0;902104;1127605;2029709;91.35%;dm-1;2113536;2113708;0;0;1802818;2255210;4058028;91.35%;slaves;2100413;2110952;14270;2756;1619526;2222969;1565575;91.43%;nvme0n1;2100413;2110952;14270;2756;1619526;2222969;1565575;91.43%;dm-0;1147;0;0;0;1390;0;1390;8.75% 3;fio-3.7;Seq-Write-QD32;1;0;0;0;0;0;0;0;0.000000;0.000000;0;0;0.000000;0.000000;1.000000%=0;5.000000%=0;10.000000%=0;20.000000%=0;30.000000%=0;40.000000%=0;50.000000%=0;60.000000%=0;70.000000%=0;80.000000%=0;90.000000%=0;95.000000%=0;99.000000%=0;99.500000%=0;99.900000%=0;99.950000%=0;99.990000%=0;0%=0;0%=0;0%=0;0;0;0.000000;0.000000;0;0;0.000000%;0.000000;0.000000;1048576;1804777;1762;581;34;142;66.841395;14.534301;7968;64460;18036.725530;7868.150051;1.000000%=8454;5.000000%=9371;10.000000%=10682;20.000000%=15138;30.000000%=15532;40.000000%=16187;50.000000%=16711;60.000000%=17170;70.000000%=17694;80.000000%=20316;90.000000%=23199;95.000000%=26083;99.000000%=60030;99.500000%=62128;99.900000%=64225;99.950000%=64225;99.990000%=64225;0%=0;0%=0;0%=0;8059;64507;18103.694674;7863.395655;1795182;1795182;99.468355%;1795182.000000;0.000000;9.482759%;3.448276%;995;0;9;0.1%;0.2%;0.4%;0.8%;1.6%;97.0%;0.0%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%;7.62%;72.27%;17.48%;2.64%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%;dm-3;2113536;2101981;0;0;1810478;2336091;4146569;91.45%;slaves;2113536;2113708;0;0;1803618;2256089;4059707;91.35%;dm-2;2113536;2113708;0;0;1803618;2256089;4059707;91.35%;slaves;1057341;1056854;0;0;902104;1127605;2029709;91.35%;dm-1;2113536;2113708;0;0;1802818;2255210;4058028;91.35%;slaves;2100413;2110952;14270;2756;1619526;2222969;1565575;91.43%;nvme0n1;2100413;2110952;14270;2756;1619526;2222969;1565575;91.43%;dm-0;1147;0;0;0;1390;0;1390;8.75% 3;fio-3.7;Rand-Read-4K-QD32-T8;2;0;1048576;165730;41432;6327;2;48;6.409914;2.451740;80;7897;765.149640;124.166448;1.000000%=181;5.000000%=675;10.000000%=692;20.000000%=708;30.000000%=724;40.000000%=741;50.000000%=757;60.000000%=774;70.000000%=790;80.000000%=823;90.000000%=872;95.000000%=921;99.000000%=1019;99.500000%=1073;99.900000%=1236;99.950000%=1400;99.990000%=5865;0%=0;0%=0;0%=0;85;7901;771.674632;124.149392;121515;153710;9.573369%;126927.750000;9186.876164;0;0;0;0;0;0;0.000000;0.000000;0;0;0.000000;0.000000;1.000000%=0;5.000000%=0;10.000000%=0;20.000000%=0;30.000000%=0;40.000000%=0;50.000000%=0;60.000000%=0;70.000000%=0;80.000000%=0;90.000000%=0;95.000000%=0;99.000000%=0;99.500000%=0;99.900000%=0;99.950000%=0;99.990000%=0;0%=0;0%=0;0%=0;0;0;0.000000;0.000000;0;0;0.000000%;0.000000;0.000000;3.904521%;24.438824%;106879;0;45;0.1%;0.1%;0.1%;0.1%;0.1%;100.0%;0.0%;0.00%;0.00%;0.00%;0.00%;0.00%;0.01%;1.16%;0.22%;45.87%;51.40%;1.33%;0.01%;0.01%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%;dm-3;2113536;2101981;0;0;1810478;2336091;4146569;91.45%;slaves;2113536;2113708;0;0;1803618;2256089;4059707;91.35%;dm-2;2113536;2113708;0;0;1803618;2256089;4059707;91.35%;slaves;1057341;1056854;0;0;902104;1127605;2029709;91.35%;dm-1;2113536;2113708;0;0;1802818;2255210;4058028;91.35%;slaves;2100413;2110952;14270;2756;1619526;2222969;1565575;91.43%;nvme0n1;2100413;2110952;14270;2756;1619526;2222969;1565575;91.43%;dm-0;1147;0;0;0;1390;0;1390;8.75% (Rand-Read-4K-QD32-T8 を あと7回繰り返し) 3;fio-3.7;Rand-Write-4K-QD32-T8;3;0;0;0;0;0;0;0;0.000000;0.000000;0;0;0.000000;0.000000;1.000000%=0;5.000000%=0;10.000000%=0;20.000000%=0;30.000000%=0;40.000000%=0;50.000000%=0;60.000000%=0;70.000000%=0;80.000000%=0;90.000000%=0;95.000000%=0;99.000000%=0;99.500000%=0;99.900000%=0;99.950000%=0;99.990000%=0;0%=0;0%=0;0%=0;0;0;0.000000;0.000000;0;0;0.000000%;0.000000;0.000000;1048576;115089;28772;9111;0;95;9.321154;5.065372;21;13234;1102.046348;728.022407;1.000000%=432;5.000000%=514;10.000000%=536;20.000000%=593;30.000000%=815;40.000000%=978;50.000000%=1073;60.000000%=1155;70.000000%=1220;80.000000%=1302;90.000000%=1417;95.000000%=1564;99.000000%=4685;99.500000%=5931;99.900000%=8585;99.950000%=9240;99.990000%=9895;0%=0;0%=0;0%=0;25;13241;1111.492674;726.954811;98480;202104;12.462638%;114745.000000;30742.210920;4.094402%;25.960483%;90077;0;11;0.1%;0.1%;0.1%;0.1%;0.1%;100.0%;0.0%;0.00%;0.00%;0.00%;0.00%;0.01%;0.01%;0.16%;3.24%;23.49%;15.16%;54.77%;1.62%;1.55%;0.01%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%;dm-3;2113536;2101981;0;0;1810478;2336091;4146569;91.45%;slaves;2113536;2113708;0;0;1803618;2256089;4059707;91.35%;dm-2;2113536;2113708;0;0;1803618;2256089;4059707;91.35%;slaves;1057341;1056854;0;0;902104;1127605;2029709;91.35%;dm-1;2113536;2113708;0;0;1802818;2255210;4058028;91.35%;slaves;2100413;2110952;14270;2756;1619526;2222969;1565575;91.43%;nvme0n1;2100413;2110952;14270;2756;1619526;2222969;1565575;91.43%;dm-0;1147;0;0;0;1390;0;1390;8.75% (Rand-Write-4K-QD32-T8 を あと7回繰り返し)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

第一列が同じ物の合計を求めたいと言うことのようなので、awkで出来ます。

awk

1a[$1] += $2から数値以外の不要な文字列を削除した物 2b[$1] += $3から数値以外の不要な文字列を削除した物 3END{for(i in a) printf 適当な書式文字列, i,a[i],b[i]}

投稿2020/11/05 23:56

otn

総合スコア84557

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

これでは丸投げです。どういうコードを書いてどう処理しようとしたのかを書きましょう。

基本的には、awkスクリプトの中で、それぞれの行の中身をスペースと:で分割しておき、適当な変数を用意して加算していけば合計値は得られるし、「ワンライナー整形後、こうなってほしい」はprintfをどうにかすればできるはずです。

投稿2020/11/05 20:27

KojiDoi

総合スコア13671

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問