sed
เครื่องมือที่ง่ายที่สุดที่นี่อาจจะเป็น ที่จะแทรกb.txt
เข้าไปในa.txt
หลังจากที่สาย 5, คุณสามารถเขียน:
sed '5r b.txt' a.txt
sed
อ่านไฟล์ที่ระบุเป็นอาร์กิวเมนต์ ( a.txt
) ทีละบรรทัด บรรทัดทั้งหมดได้รับการทำซ้ำในผลลัพธ์เช่นเดียวกับที่ปรากฏในอินพุตเว้นแต่ว่าพวกเขาจะได้รับการแก้ไขโดยคำสั่ง
นี่5
คือที่อยู่ (หมายเลขบรรทัด) ซึ่งคำสั่งต่อไปนี้จะต้องถูกดำเนินการ คำสั่งที่เราใช้คือr
ซึ่งใช้ชื่อไฟล์เป็นอาร์กิวเมนต์ (ที่นี่b.txt
) อ่านอย่างสมบูรณ์และแทรกลงในเอาต์พุตหลังจากบรรทัดปัจจุบัน
sed
บรรทัดคำสั่งนี้จะพิมพ์เอาต์พุตไปยังเทอร์มินัลเท่านั้นโดยไม่ต้องเขียนลงไฟล์ใด ๆ คุณสามารถเปลี่ยนเส้นทางไปยังไฟล์ใหม่ (ไม่ใช่ไฟล์อินพุตใด ๆ !) โดยใช้การเปลี่ยนเส้นทางของ Bash:
sed '5r b.txt' a.txt > c.txt
หรือคุณโดยตรงสามารถปรับเปลี่ยนแฟ้มใส่ด้านนอกa.txt
โดยใช้sed
's -i
(สำหรับ 'ในสถานที่') สวิทช์ หากคุณเขียนมัน-i.bak
จะทำสำเนาสำรองของไฟล์อินพุตดั้งเดิมด้วยคำต่อท้าย.bak
ก่อน:
sed -i '5r b.txt' a.txt
ตัวอย่าง:
$ cat a.txt
January
February
March
April
May
October
November
December
$ cat b.txt
June
July
August
September
$ sed '5r b.txt' a.txt
January
February
March
April
May
June
July
August
September
October
November
December