Используйте (( ))
для числового сравнения:
if (( $(grep -c -- "LineString" "$file") >= 2 )); then
# your logic
fi
Чтобы перебрать все файлы:
#!/bin/bash
shopt -s nullglob # make glob expand to nothing if there are no matching files
for file in *; do
[[ -f $file ]] || continue
if (( $(grep -c -- "LineString" "$file") >= 2 )); then
# your logic
fi
done
Если вы имеете дело с очень большими файлами и ваш grep
поддерживает опцию -m
, то вы можете использовать grep -cm 2
для оптимизации чтения:
#!/bin/bash
shopt -s nullglob
for file in *; do
[[ -f $file ]] || continue
if (( $(grep -cm 2 -- "LineString" "$file") >= 2 )); then
# your logic
fi
done