我正在寻找一种方法来让它发挥作用:我希望它给出他找到的所有匹配项,如果他没有找到任何东西,而不是空行
lines=($(cat fee.file | awk '{print $1}'))
for line in ${lines[@]}; do
dropper="$(cat foo.file | grep ${checkvar[$nr]})"
((nr++))
done
echo $dropper
它给了我:
4594
4044
4950
4503
现在我只想在有数字的时候做一个动作,当它为空的时候我什么都不做。所以我在for循环中添加了这个
if ! [[ -z $dropper ]]; then
echo $dropper
fi
但这不起作用。它仍然在我的屏幕上打印空行!不知何故,即使 grep 没有找到某些东西,它也会用某些东西填充 $droppers。我什至尝试使用 sed、grep 或 awk 删除白线。但没有任何帮助。
如何仅在实际填充 $droppers 时才激活 if 语句?
foo.file 只是充满了很多只有数字的行。比如:
4594
4595
4597
2489
3949
fee.file 将具有相同的数字,但大约 10% 的数字与 foo.file 中的数字匹配