Talvez você queira:
set ../mo/*e.log
for file2 in ../excited/*-d.log; do
file1=$1; shift
awk 'NR == FNR{a[$1]=$2; b[$1]=$3; next}
/:/ || !NF{print; next}
{print $1, $2*a[$1], $2*b[$1]}' "$file1" "$file2" > "${file1%e.log}f.log"
done
Ou com zsh
:
file1s=(../mo/*e.log)
file2s=(../excited/*-d.log)
for file1 file2 (${file1s:^file2s}) {
awk 'NR == FNR{a[$1]=$2; b[$1]=$3; next}
/:/ || !NF{print; next}
{print $1, $2*a[$1], $2*b[$1]}' "$file1" "$file2" > "${file1%e.log}f.log"
}
Acima, temos duas listas ordenadas de nomes de arquivos e passamos por ambas as listas em paralelo. Se o nome base dos arquivos em mo
e em excited
for correspondido, você poderia fazer:
for file1 in ../mo/*e.log; do
basename=${file1%e.log}
basename=${basename##*/}
file2=../excited/$basename-d.log
[ -f "$file2" ] || continue
awk 'NR == FNR{a[$1]=$2; b[$1]=$3; next}
/:/ || !NF{print; next}
{print $1, $2*a[$1], $2*b[$1]}' "$file1" "$file2" > "${file1%e.log}f.log"
done