#!/bin/bash
t =$( mktemp -t -d awkinator.XXXXXXXXXX) || exit
cd "$t "
trap 'rm -rf "$t"' EXIT ERR
cat << \: > file1.txt
Name Latin-small Roman Latin-caps
F0 a I A
F1 b II B
F2 c III C
F3 d IV D
:
cat << \: > file2.txt
Lorem ipsum
Roman here.
LCaps here.
LSmall here.
Lorem ipsum
:
awk -F "\t " 'BEGIN { split(":LSmall:Roman:LCaps", k, /:/) }
NR==FNR { a[NR] = $0; n=NR; next }
FNR==1 { next } # skip header
{
system("mkdir "$1)
filename=$1"/"$1".txt"
for(i=1; i<=n; i++) {
line = a[i]
for (j=2; j<=NF; ++j) {
if (line ~ k[j]) {
gsub(/here/, $j, line)
break
}
}
print line >>filename }
}' file2.txt file1.txt
tail */* .txt
IyEvYmluL2Jhc2gKCnQ9JChta3RlbXAgLXQgLWQgYXdraW5hdG9yLlhYWFhYWFhYWFgpIHx8IGV4aXQKY2QgIiR0Igp0cmFwICdybSAtcmYgIiR0IicgRVhJVCBFUlIKCmNhdCA8PFw6ID5maWxlMS50eHQKTmFtZQlMYXRpbi1zbWFsbAlSb21hbglMYXRpbi1jYXBzCkYwCWEJSQlBCkYxCWIJSUkJQgpGMgljCUlJSQlDCkYzCWQJSVYJRAo6CgpjYXQgPDxcOiA+ZmlsZTIudHh0CkxvcmVtIGlwc3VtClJvbWFuIGhlcmUuCkxDYXBzIGhlcmUuCkxTbWFsbCBoZXJlLgpMb3JlbSBpcHN1bQo6Cgphd2sgLUYgIlx0IiAnQkVHSU4geyBzcGxpdCgiOkxTbWFsbDpSb21hbjpMQ2FwcyIsIGssIC86LykgfQogICAgTlI9PUZOUiB7IGFbTlJdID0gJDA7IG49TlI7IG5leHQgfQogICAgRk5SPT0xIHsgbmV4dCB9ICAjIHNraXAgaGVhZGVyCiAgICB7CiAgICAgICAgc3lzdGVtKCJta2RpciAiJDEpCiAgICAgICAgZmlsZW5hbWU9JDEiLyIkMSIudHh0IiAgICAgICAgCiAgICAgICAgZm9yKGk9MTsgaTw9bjsgaSsrKSB7CiAgICAgICAgICAgIGxpbmUgPSBhW2ldCiAgICAgICAgICAgIGZvciAoaj0yOyBqPD1ORjsgKytqKSB7CiAgICAgICAgICAgICAgICBpZiAobGluZSB+IGtbal0pIHsKICAgICAgICAgICAgICAgICAgICBnc3ViKC9oZXJlLywgJGosIGxpbmUpCiAgICAgICAgICAgICAgICAgICAgYnJlYWsKICAgICAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcHJpbnQgbGluZSA+PmZpbGVuYW1lIH0KICAgIH0nIGZpbGUyLnR4dCBmaWxlMS50eHQKCnRhaWwgKi8qLnR4dA==