Ho due file diversi:
file1
/home/user1/
/home/user2/bin
/home/user1/a/b/c
file2
<TEXT1>
<TEXT2>
Voglio sostituire il <TEXT1>
di File2 con il contenuto di File1 utilizzando sed
. Ho provato questo comando, ma non ho ottenuto l'output corretto:
cat File2|sed "s/<TEXT1>/$(cat File1|sed 's/\//\\\//g'|sed 's/$/\\n/g'|tr -d "\n")/g"
Puoi usare altri strumenti anche per risolvere questo problema.
/home/user1/ n/home/user2/bin n/home/user1/a/b/cn <TEXT2>
. Non ottenere nuove linee.
diff
e gli patch
strumenti consentono di sostituire alcune linee in un file con altre linee abbastanza facilmente.
$()
in uno script sed mi fa sanguinare gli occhi. Non utilizzare mai dati esterni in luoghi in cui alcuni caratteri vengono interpretati con un significato speciale.
sed
implementazione stai usando. Il tuo codice funziona per me con GNUsed
.