Есть 2 файла. в одном все строки. в другом критерии по которым нужно выбрать строки. например:
test:
1 a
2 b
3 a
4 c
5 a
/\([[:digit:]]*\) a/\1 b/
/\([[:digit:]]*\) c/\1 b/
Если сделать через ком строку то все ок:
$cat test | sed -n -e "s/\([[:digit:]]*\) a/\1 b/p"
1 b
3 b
5 b
$cat test | sed -n -e "s/\([[:digit:]]*\) c/\1 b/p"
4 b
Как сделать то же самое, но не руками, а пакетно не могу придумать. Так не работает:
filename=$1
sourcefile=$2
IFS=$'\n'
for line in `cat $filename`; do
cat $sourcefile | sed -n -e "s${line}p"
done
суть очень упрощенна, по этому надо именно так. брать регулярку из файла заменять по ней. брать следующую строку.