如果我的file.txt包含数据:
abcd!1023!92
efgh!9873!xk
和一个基本的tutorial.sh文件,它贯穿每一行
while read line
do
name = $line
done < $1
如何在“!”之间分隔数据?进入一列并选择第二列并添加它们? (我知道“sed -k 2 | bc”函数,但我不能/不理解如何使用shell脚本。
答案 0 :(得分:1)
您可以使用awk:
awk -F '!' '{sum += $2} END{print sum}' file
10896
答案 1 :(得分:1)
调整while循环:
while IFS='!' read -r a b c
do
((sum += b))
done < "$1" # always quote "$vars"
echo "$sum"
IFS是shell&#34;内部字段分隔符&#34;用于将字符串拆分为单词。它通常是&#34;空白&#34;但你可以根据自己的特殊需要使用它。