ฉันมีสองไฟล์ที่แตกต่างกัน:
file1
/home/user1/
/home/user2/bin
/home/user1/a/b/c
file2
<TEXT1>
<TEXT2>
ฉันต้องการที่จะเข้ามาแทนที่<TEXT1>
ของFile2กับเนื้อหาของFile1sed
ใช้ ฉันลองคำสั่งนี้ แต่ไม่ได้ผลลัพธ์ที่เหมาะสม:
cat File2|sed "s/<TEXT1>/$(cat File1|sed 's/\//\\\//g'|sed 's/$/\\n/g'|tr -d "\n")/g"
คุณสามารถใช้เครื่องมืออื่นเพื่อแก้ไขปัญหานี้ได้เช่นกัน
/home/user1/ n/home/user2/bin n/home/user1/a/b/cn <TEXT2>
กัน ไม่ได้รับสายใหม่
diff
และpatch
เครื่องมืออนุญาตให้แทนที่บางบรรทัดในไฟล์ด้วยบรรทัดอื่น ๆ ได้ค่อนข้างง่าย
$()
สคริปต์ที่ทำให้ตาของฉันตกแล้ว อย่าใช้ข้อมูลภายนอกในสถานที่ที่อักขระบางตัวถูกตีความด้วยความหมายพิเศษ
sed
ด้วยว่าคุณกำลังใช้งานระบบใด รหัสคุณทำงานสำหรับฉันกับsed
GNU