使用awk进行Bash格式化

时间:2015-07-27 04:59:12

标签: bash awk formatting

我在使用bash格式化方面遇到了困难

这是我现有的格式,价格不在总销售额之下。如何才能让它成为总销售额?总销售额不存在于文本文件中,仅在特定功能下显示。它不会保存到文本文件

Title  Author   Price  Qty Avail  Qty Sold  Total Sales
-------------------------------------------------------
Book1  Author1  1      1          1
Book2  Author2  2      2          2
$1.00
$4.00

以下是我的编码

echo "" 
column -ts : <(echo Title:Author:Price:Qty Avail:Qty Sold:Total Sales) BookDB.txt | sed "1{p;s/./-/g}"

awk -F : -v search="$1" '        
BEGIN {
count = 0 
}
$1 ~ search {
printf "$%0.2f\n",($3 * $5) 
        ++count
    }
    END {
        printf "%d,records found\n",count
    }
' BookDB.txt | column -t    }

1 个答案:

答案 0 :(得分:1)

awk -F : -v search="$1" '
BEGIN {
count = 0;
print "Title:Author:Price:Qty Avail:Qty Sold:Total Sales"
}
sale = 0
$1 ~ search {
        ++count
    }
    {
    sale = $3 * $5
    printf "%s:$%0.2f\n",$0,sale
    }
    END {
        printf "%d records found for %s\n",count,search
    }
' BookDB.txt | column -ts : | sed "1{p;s/./-/g}"