次の出力があります。
Course: StudentCount
('BCA_27', 2L)
('MCA_34', 15L)
('BBA_26', 3L)
('BBM_02', 14L)
('MBA_23', 13L)
不要な文字を削除するには、次のコマンドを使用しています。
<output> |sed "s/['()]//g;s/,/:/g;s/\([0-9]\)L[ ]*$/\1/g;"|awk '{print $NF,$0}' | sort -nr | cut -f2- -d' '
これで出力は次のようになります。
MCA_34 : 15
BBM_02 : 14
MBA_23 : 13
BBA_26 : 3
BCA_27 : 2
Course : StudentCount
awk
出力が次のようにヘッダー行を除外するのをどのように防ぐべきですか?
Course : StudentCount
MCA_34 : 15
BBM_02 : 14
MBA_23 : 13
BBA_26 : 3
BCA_27 : 2
ベストアンサー1
awkを使用すると、sedは必要ありません。
$ awk -F"[',: ]+" -v OFS=' : ' '{print (NR>1) "\t" (NR==1 ? $1 OFS $2 : $3 OFS $4+0)}' file |
sort -k1,1n -k4,4nr | cut -f2-
Course : StudentCount
MCA_34 : 15
BBM_02 : 14
MBA_23 : 13
BBA_26 : 3
BCA_27 : 2