我试图比较一个看起来像
的ksh脚本中的2个日志文件log1:
10100 951 5 20150318 20150430
10101 11950 0 20150323 20150630
10102 285933 1 20150128 20150430
10041 57007 3.53 20150128 20150430
的log 2
10100 951 5.0000 20150318 20150430
10101 11950 0.0000 20150323 20150630
10102 285933 1.0000 20150128 20150430
10041 57007 3.5300 20150128 20150430
Log1
上的 column 3
在 .
后最多2位数(例如:3.53)
Log2
上的 colum 3
总是在 .
之后有4位数字(例如:0.0000或3.5300)
我怎么能在之后添加一些数字。对于第一个日志或删除log2中的数字,以便能够比较它们的行?
我的脚本是用ksh
编写的。
答案 0 :(得分:0)
您应该使用printf格式化值:
cat log1 | while read col1 col2 col3 col4 col5; do
printf "%d %d %.4f %d %d\n" ${col1} ${col2} ${col3} ${col4} ${col5}
done > log1.converted
以上代码阅读起来很简单,但对猫进行了不必要的调用(" UUOC")。 写这个的更好方法是
while read col1 col2 col3 col4 col5; do
printf "%d %d %.4f %d %d\n" ${col1} ${col2} ${col3} ${col4} ${col5}
done < log1 > log1.converted