【发布时间】:2011-04-17 19:33:20
【问题描述】:
我正在尝试一项看似非常简单的任务:使用 bash 在文件中搜索字符串,如果存在,则将其输出到另一个文件。可能是时差,但这应该可行:
#!/bin/bash
cnty=CNTRY
for line in $(cat wheatvrice.csv); do
if [[ $line = *$cnty* ]]
then
echo $line >> wr_imp.csv
fi
done
为了完整性,我也试过这个:
#!/bin/bash
cnty=CNTRY
for line in $(cat wheatvrice.csv); do
case $line in
*"$cnty"*) echo $line >> wr_imp.csv;;
*) echo "no";;
esac
done
无论该行是否包含 CNTRY,两者都输出所有内容,而且我从看似可靠的来源复制/粘贴,所以显然我缺少一些关于 bash-ness 的简单内容?
【问题讨论】:
-
对于它的价值,有些行是:
Brazil,CNTRY-average,1989.428053,0.875353691,2899.968733,531.652993
这些是我想要的,其他的是
柬埔寨,Pouthisat,,,3857.124865,122.266868
这些不是我想要的