Saya punya dua file berbeda:
File1
/home/user1/
/home/user2/bin
/home/user1/a/b/c
File2
<TEXT1>
<TEXT2>
Saya ingin mengganti <TEXT1>dari File2 dengan isi File1 menggunakan sed. Saya mencoba perintah ini, tetapi tidak mendapatkan output yang tepat:
cat File2|sed "s/<TEXT1>/$(cat File1|sed 's/\//\\\//g'|sed 's/$/\\n/g'|tr -d "\n")/g"
Anda dapat menggunakan alat lain juga untuk menyelesaikan masalah ini.
/home/user1/ n/home/user2/bin n/home/user1/a/b/cn <TEXT2>. Tidak mendapat baris baru.
diffdan patchalat memungkinkan untuk mengganti beberapa baris dalam file dengan baris lain dengan cukup mudah.
$()skrip sed membuat mata saya berdarah. Jangan pernah menggunakan data eksternal di tempat-tempat di mana beberapa karakter ditafsirkan dengan makna khusus.
sedimplementasi mana yang Anda gunakan. Kode Anda berfungsi untuk saya dengan GNUsed.