Вам вообще не нужно использовать awk
while read i
do
grep ${i#*_} bigfile.txt > ${i%%_*}
done <aaa
Для GNU sed
sed 's/\([^_]\+\)_\(.*\)/sed "\/\2\/!d" bigfile.txt >"\1"/e' aaa
Для awk (если хотите)
awk -F_ '
NR == FNR{
A[$2] = $1
next
}
{
for(a in A)
if($0 ~ a)
print > A[a]
}
' aaa bigfile.txt
Для больших файлов вам нужно будет использовать
print >> A[a]
close(A[a])
I need it to test what is the distro-oriented document-root dir (based on the dir's existence)
Из этих двух вариантов вы можете использовать [ -d dir ]
, чтобы увидеть, существуют ли они:
if [ -d /var/www/html ]; then
drt=/var/www/html;
elif [ -d /srv/http ]; then
drt=/srv/http
else
echo "No HTTP server root directory found"
exit 1
fi
или с петлей:
drt=
for d in /var/www/html /srv/http; do
if [ -d "$d" ]; then
drt=$d;
break
fi
done
if [ -z "$drt" ]; then
echo "No HTTP server root directory found"
exit 1
fi
Конечно,все это предполагает, что они на самом деле используют корень документа дистрибутива по умолчанию, что может быть не так. Было бы неплохо дать пользователю возможность убедиться, что каталог, найденный сценарием, является правильным.