J'ai deux fichiers différents:
File1
/home/user1/
/home/user2/bin
/home/user1/a/b/c
File2
<TEXT1>
<TEXT2>
Je veux remplacer le <TEXT1>
de File2 par le contenu de File1 en utilisant sed
. J'ai essayé cette commande, mais je n'ai pas obtenu de sortie appropriée:
cat File2|sed "s/<TEXT1>/$(cat File1|sed 's/\//\\\//g'|sed 's/$/\\n/g'|tr -d "\n")/g"
Vous pouvez également utiliser d'autres outils pour résoudre ce problème.
/home/user1/ n/home/user2/bin n/home/user1/a/b/cn <TEXT2>
. Pas de nouvelles lignes.
diff
et les patch
outils permettent de remplacer assez facilement certaines lignes d'un fichier par d'autres lignes.
$()
dans un script sed me fait saigner les yeux. N'utilisez jamais de données externes dans des endroits où certains caractères sont interprétés avec une signification particulière.
sed
implémentation utilisez-vous. Votre code fonctionne pour moi avec GNUsed
.