у меня есть 2 текстовых файла 1.txt и 2.txt.
1.txt состоит из имен и идентификаторов, разделенных вкладкой, например:
Doe,John 123456
Smith,Jack 234678
Green,George987987
West,Mae 444555
2.txtсостоит из идентификаторов и оценок, также разделенных вкладкой, например:
234678 B
123456 A+
444555 B+
987987 C+
Я хочу взять идентификатор из каждой строки в 1.txt, найти 2.txt для соответствия, затем вывести имя иоценка, связанная с этим числом, в новый файл.
ожидаемый результат:
Doe,John A+
Smith,Jack B
Green,GeorgeC+
West,Mae B+
, поэтому я сделал следующее:
>namegrades.txt
exec < $1 #read from 1.txt
while read line
do #store the name and the id for the current line
number=$(echo "$line" | cut -d$'\t' -f 2);
name=$(echo "$line" | cut -d$'\t' -f 1);
echo $name # used to test
exec < $2 #take input from 2.txt
while read line
do #store the grade and check the current line in file for a matching id
grade=$(echo "$line" | cut -d$'\t' -f 2);
check=$(echo "$line" | grep -c $number)
echo $check
if [ $check == 1 ]; then #if there is a match echo to new file
#echo "$name $grade" >> namegrades.txt
echo hello #used to test
fi
done < $2
done < $1
когда я запустил код, выводя получаю:
Doe,John
1
hello
0
0
0
123456
1
hello
0
0
0
123456
1
hello
0
0
0
повторяется до бесконечности. Я новичок в Unix и не знаю, как это исправить, любая помощь приветствуется.