j=`grep -o "{[0-9A-Z]\{4\}}" k1.txt | sed -r "s/\s+//g" | sed '/^$/d'`;
grep -B1 "$j" k1.txt | sed "/title/s/.*/&\n\\\addcontentsline$j/g";
for i in `grep -o "{[A-Z]\{6\}}" k1.txt`; do
grep -B1 $i k1.txt| sed "/title/s/.*/&\n\\\addcontentsline$i/g";
done
Выход:
something
\title{\hypertarget{A64L}{A64L(3)}}
\addcontentsline{A64L}
something
\title{\hypertarget{MALLOC}{MALLOC(3)}}
\addcontentsline{MALLOC}
something
\title{\hypertarget{STRCMP}{STRCMP(3)}}
\addcontentsline{STRCMP}