проверить, содержит ли файл две переменные в строке - PullRequest
0 голосов
/ 27 марта 2020

Я пытаюсь проверить, существуют ли значения моих переменных в файле или не используется условие if в Bash. Я попытался сделать следующее, но для всех значений я получаю значение false.

a=-127.5256
b=24.5632

file=test.txt
-54.2565   58.9685
-127.2568  12.5890
-127.5256  24.5632
-78.9865   35.2366

Я попытался, как следует, но не работает в моем случае:

if grep -Fxq "($a $b | bc)" $file; then
  echo True
else
  echo False

Есть ли другие способ выполнения вышеуказанной работы?

Спасибо

1 Ответ

0 голосов
/ 28 марта 2020

Я бы предпочел использовать AWK.

awk -v a=-127.5256 -v b=24.5632 '{if ($1==a && $2=b) print "True"}' < input file

с использованием bash

while IFS=" " read -r f1 f2; 
do  
if [ "$a" == "$f1" ] && [ "$b" == "$f2" ]
then 
echo "True"
fi 
done < input file

Демо:

$cat test.txt 
-54.2565   58.9685
-127.2568  12.5890
-127.5256  24.5632
-78.9865   35.2366
$awk -v a=-127.5256 -v b=24.5632 '{if ($1==a && $2=b) print "True"}' test.txt
True
$echo $a $b
-127.5256 24.5632
$while IFS=" " read -r f1 f2; 
> do  
> if [ "$a" == "$f1" ] && [ "$b" == "$f2" ]
> then 
> echo "True"
> fi 
> done < test.txt
True
$
...