Это мой скрипт, и он отлично работает для одного файла:
awk 'BEGIN {while (getline < "eq5_1.gro") {if ($1 ~ /MGD/ && ($NF < 3.477 || $NF > 7.947 || $(NF-1) < 12.741 || $(NF-1) > 22.240)) name[$1]=$1}} {if ($1 != name[$1]) print}'
eq5_1.gro | tee eq6_1.gro
Я хочу использовать этот скрипт на 100 файлах, поэтому я написал этот скрипт.
num=1
for num in {1..100}
do
awk 'BEGIN {while (getline < "eq5_"'$num'".gro") {if ($1 ~ /MGD/ && ($NF < 3.477 || $NF > 7.947 || $(NF-1) < 12.741 || $(NF-1) > 22.240)) name[$1]=$1}} {if ($1 != name[$1]) print}' eq5_$num.gro | tee eq6_$num.gro
done
I есть проблема с этой частью кода
(getline < "eq5_"'$num'".gro")
Как я могу поставить здесь число в виде строки? Я хочу иметь здесь eq5_1.gro eq5_2.gro et c. для всех 100 файлов я тоже попробую, не получилось
awk -v var="$num" 'BEGIN {while (getline < "eq5_"'$var'".gro")