Bash-Shell中的计算
如何计算以下数据Bash-Shell中的计算,bash,bc,Bash,Bc,如何计算以下数据 Input: 2 Printers 2 x 2 Cartridges 2 Router 1 Cartridge 输出: Total Number of Printers: 2 Total Number of Cartridges: 5 Total Number of Router: 2 请注意,盒带已乘以(2 x 2)+1=5。我尝试了以下方法,但不确定在出现(2 x 2)场景类型时如何获取号码: awk -F " " '{print $1}' Cartridges.t
Input:
2 Printers
2 x 2 Cartridges
2 Router
1 Cartridge
输出:
Total Number of Printers: 2
Total Number of Cartridges: 5
Total Number of Router: 2
请注意,盒带已乘以(2 x 2)+1=5
。我尝试了以下方法,但不确定在出现(2 x 2)
场景类型时如何获取号码:
awk -F " " '{print $1}' Cartridges.txt >> Cartridges_count.txt
CartridgesCount=`( echo 0 ; sed 's/$/ +/' Cartridges_count.txt; echo p ) | dc`
echo "Total Number of Cartridges: $CartridgesCount"
请告知。尝试类似的方法(假设输入格式正确)
p.S.墨盒和墨盒是不同的。如果您也想解决这个问题,那就更加困难了,但您可以修改管道中的最后一个awk。尝试类似的方法(假设输入格式良好)
p.S.墨盒和墨盒是不同的。如果您也想处理这个问题,则会更加困难,但您可以修改管道中的最后一个awk。这假设数据中只有乘法运算符
awk '{$NF = $NF "s"; sub("ss$", "s", $NF); qty = $1; for (i = 2; i < NF; i++) {if ($i ~ /^[[:digit:]]+$/) {qty *= $i}}; items[$NF] += qty} END {for (item in items) {print "Total number of", item ":", items[item]}}'
awk'{$NF=$NF“s”;sub(“ss$”,“s”,$NF);qty=$1;for(i=2;i
分为多行:
awk '{
$NF = $NF "s";
sub("ss$", "s", $NF);
qty = $1;
for (i = 2; i < NF; i++) {
if ($i ~ /^[[:digit:]]+$/) {
qty *= $i
}
};
items[$NF] += qty
}
END {
for (item in items) {
print "Total number of", item ":", items[item]
}
}'
awk'{
$NF=$NF“s”;
次级(“ss$”、“s”、$NF);
数量=1美元;
对于(i=2;i
这假设数据中只有乘法运算符
awk '{$NF = $NF "s"; sub("ss$", "s", $NF); qty = $1; for (i = 2; i < NF; i++) {if ($i ~ /^[[:digit:]]+$/) {qty *= $i}}; items[$NF] += qty} END {for (item in items) {print "Total number of", item ":", items[item]}}'
awk'{$NF=$NF“s”;sub(“ss$”,“s”,$NF);qty=$1;for(i=2;i
分为多行:
awk '{
$NF = $NF "s";
sub("ss$", "s", $NF);
qty = $1;
for (i = 2; i < NF; i++) {
if ($i ~ /^[[:digit:]]+$/) {
qty *= $i
}
};
items[$NF] += qty
}
END {
for (item in items) {
print "Total number of", item ":", items[item]
}
}'
awk'{
$NF=$NF“s”;
次级(“ss$”、“s”、$NF);
数量=1美元;
对于(i=2;i
我添加了一个“bc”标签以吸引回应。@noabash
有3.7K个追随者,而bc
没有追随者。添加该标记将不会吸引任何额外的响应。这对于bash编程来说是非常重要的。这是一种自我强加的痛苦,还是有外部要求迫使你不要使用更强大的语言?@chrisaycock:标记也用于搜索,而不仅仅是跟踪。你有一套固定的库存项目可以在输入中出现吗?如果是这样的话,它们都有一个主流的常规复数吗?我添加了一个“bc”标签以吸引回应。@noabash
有3.7K追随者,而bc
没有追随者。添加该标记将不会吸引任何额外的响应。这对于bash编程来说是非常重要的。这是一种自我强加的痛苦,还是有外部要求迫使你不要使用更强大的语言?@chrisaycock:标记也用于搜索,而不仅仅是跟踪。你有一套固定的库存项目可以在输入中出现吗?如果是这样,它们是否都有一个主流的规则复数?