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.
diff
dan patch
alat 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.
sed
implementasi mana yang Anda gunakan. Kode Anda berfungsi untuk saya dengan GNUsed
.