【发布时间】:2013-10-21 13:47:19
【问题描述】:
这可能是一个愚蠢的问题,但我从来没有在脚本中遇到过这样的事情。因此,我们将不胜感激。
我正在处理来自人口普查的数据并且必须生成报告。 文件中的每一行都有一个姓氏、频率等。我必须抓住频率。 但是,如果我抓住一些频率为“0.000”的姓氏,那么我必须将其更改为“0.00025”。我试图做一个 if 语句,但不知道该怎么做。
#!/bin/bash
all=/homes/ddailey/public_html/data/dist_all_last
count=`grep -w $1 $all | awk '{ print $2 }'`
if [ $count == "0.000" ]; then
echo .00025
else
echo $count
fi
【问题讨论】:
-
这并不完美,但看起来应该按照您的描述进行。它有什么问题?
-
是的,我知道它并不完美,只需几分钟后将其放在一起。问题是,如果 $count 对 0.000 的字符串进行 greps,它不会将其更改为 .00025。它只是保持在 0.000
-
正如所写,它不应该改变
count的值,但它应该echo .00025。它会这样做吗? -
文件有多少行?如果有多个,那就麻烦了。另请参阅How to debug a shell script。
-
它不回显 .00025,它回显的是 .000...但它们在文件中不止一行