Lorsque la chaîne de remplacement comporte des sauts de ligne et des espaces, vous pouvez utiliser autre chose. Nous allons essayer d'insérer la sortie de ls -l
au milieu d'un fichier modèle.
awk 'NR==FNR {a[NR]=$0;next}
/Insert index here/ {for (i=1; i <= length(a); i++) { print a[i] }}
{print}'
<(ls -l) text.txt
Lorsque vous souhaitez insérer quelque chose après une ligne, vous pouvez déplacer la commande {print}
ou basculer vers:
sed '/Insert command output after this line/r'<(ls -l) text.txt
Vous pouvez également utiliser sed pour insérer avant une ligne avec
sed 's/Insert command output after this line/ls -l; echo "&"/e' text.txt