处理脚本,我目前陷入困境。 (还是很新的)
首先我有我的数据文件,我在里面搜索的文件。 第一个字段是名称,第二个是付款,第三个是欠款。
customerData.txt
name1,500.00,1000
name2,2000,100
name3,100,100.00
这是我的bash文件。基本上如果欠款金额大于付款金额,则打印名称。适用于任何不浮动的东西。我也明白bash不处理浮动,处理它们的唯一方法是使用bc实用程序,但我没有运气。
#!/bin/bash
while IFS="," read name paid owe; do
#due=$(echo "$owe - $paid" |bc -1)
#echo $due
if [ $owe -gt $paid ]; then
echo $name
fi
done < customerData.txt
答案 0 :(得分:3)
打印第三列大于第二列的所有行:
$ awk -F, '$3>$2' customerData.txt
name1,500.00,1000
-F,
告诉awk列是逗号分隔的。
$3>$2
告诉awk打印第三列大于第二列的任何行。
更详细地说,$3>$2
是一个条件:它的计算结果为true或false。如果它的计算结果为true,则执行该操作。由于我们没有指定任何操作,因此awk会执行默认操作,即打印该行。