shell数值操作(四则运算,浮点数,科学计数法)---awk,bc
2013-03-05 19:55
309 查看
1
两个文件对应行的数值进行数值计算
#!/bin/bash
#use awk to handle Scientific notation
#use bc to handle float
for loop in 1
do
d=`ls ./performance.v1/${loop}thread/*.ori `
for f in $d
do
echo $f
line=`cat $f | wc -l`
rm ${f}-minus
# for ((i=1;i<=$line;i++))
for i in `seq $line`
do
file1=` awk '{ if(NR=='"$i"') print $2}' ${f} `
#NR代表行号
echo $file1
file2=` awk '{ if(NR=='"$i"') print $2}' ${f/v1/v2/} `
# 字符串替换 ${f/v1/v2/} `
echo $file2
if echo $file1 | grep "E"
then
result=`echo "$file1 $file2" | awk '{print "%f",$1-$2}'`
# awk可以对科学计数法进行计算
echo $result>>${f}-minus
echo "result"
else
result=` echo "$file1 - $file2" | /home/xuanji/bc-1.06/bc/bc`
#bc可以处理浮点数
echo $result
echo "result"
echo $result >>${f}-minus
fi
done
done
done
2 参考代码:
|浏览次数:376次
我来帮他解答
满意回答
2012-11-12 18:28
追问
网址:http://zhidao.baidu.com/question/496930297.html
两个文件对应行的数值进行数值计算
#!/bin/bash
#use awk to handle Scientific notation
#use bc to handle float
for loop in 1
do
d=`ls ./performance.v1/${loop}thread/*.ori `
for f in $d
do
echo $f
line=`cat $f | wc -l`
rm ${f}-minus
# for ((i=1;i<=$line;i++))
for i in `seq $line`
do
file1=` awk '{ if(NR=='"$i"') print $2}' ${f} `
#NR代表行号
echo $file1
file2=` awk '{ if(NR=='"$i"') print $2}' ${f/v1/v2/} `
# 字符串替换 ${f/v1/v2/} `
echo $file2
if echo $file1 | grep "E"
then
result=`echo "$file1 $file2" | awk '{print "%f",$1-$2}'`
# awk可以对科学计数法进行计算
echo $result>>${f}-minus
echo "result"
else
result=` echo "$file1 - $file2" | /home/xuanji/bc-1.06/bc/bc`
#bc可以处理浮点数
echo $result
echo "result"
echo $result >>${f}-minus
fi
done
done
done
2 参考代码:
shell脚本,一行一行比较两个文本文件。 shell脚本,对一行一行读取文本文件得到的那一行数据进行字符串
2012-11-12 15:58提问者:ShiJingCai075|浏览次数:376次
以逗号分割。 比如文本文件的数据: group1,table1,name,1 group2,table1,name,2
我来帮他解答
满意回答
2012-11-12 18:28
没明白你的意思,就写了一个判断两个文件对应行是不是相同。在线的话就追问我。 line=`cat file1|wc -l` for ((i=1;i<=$line;i++));do file1=`awk 'NR="'$i'"{print $0}'` file1 file2=`awk 'NR="'$i'"{print $0}'` file2 if [ $file1 == $file2 ];then echo line $i looks same! else echo line $i looks different! fi done
追问
对读取的一行一行的文件内容以逗号分割,我现在已经做出来了,比如这种: fileGroupId=`echo $line | awk -F ',' '{ print $1; }'` columnName=`echo $line | awk -F ',' '{ print $7; }' ##然后比较。 if [[ $fileGroupId != $groupParam ]]; then
网址:http://zhidao.baidu.com/question/496930297.html
相关文章推荐
- shell数值操作(四则运算,浮点数,科学计数法)---awk,bc
- shell中用bc进行浮点运算
- shell 使用bc处理浮点数运算
- shell中用bc进行浮点运算
- shell中用bc进行浮点运算
- shell中用bc进行浮点运算(转帖)
- shell 中,用bc作浮点运算
- shell 浮点运算工具bc
- shell浮点运算工具bc
- shell中用bc进行浮点运算
- shell浮点运算工具bc
- shell中用bc进行浮点运算
- shell浮点运算工具bc
- shell实现四则运算简单方法
- 数值运算shell脚本
- linux bash bc awk 浮点 计算 比较
- linux shell 实现 四则运算(整数及浮点) 简单方法
- shell基础-bash变量-数值运算与运算符
- LinuxShell脚本编程基础2-变量与数值运算、父shell和子shell
- [Shell]Bash变量:数值运算及运算符