O shell não expande variáveis dentro de aspas simples. Você precisa usar aspas duplas. Além disso, como diz Danatela, você também precisa de chaves neste caso. Como o shell tentará expandir o $d
também, você precisará escapar do $
.
sed -f <(sed -e "1,${VAR1}d; 12,$d; x; s/.*/10a\/;p; x" ../log/file2.txt ) ../log/file4.txt > ../log/file5.txt
Eu não tenho certeza se há outras partes nas citações que também precisarão de escape já que você usa aspas duplas agora (por exemplo, *
?), então você sempre pode alternar entre aspas duplas e simples, usando o antigo somente quando necessário.
sed -f <(sed -e '1,'"${VAR1}"'d; 12,$d; x; s/.*/10a\/;p; x' ../log/file2.txt ) ../log/file4.txt > ../log/file5.txt