Công cụ đơn giản nhất ở đây có thể là sed
. Để chèn b.txt
vào a.txt
sau dòng thứ 5, bạn có thể viết:
sed '5r b.txt' a.txt
sed
đọc tệp được chỉ định là đối số ( a.txt
) theo từng dòng. Tất cả các dòng được sao chép trong đầu ra giống như chúng xuất hiện trong đầu vào, trừ khi chúng bị thay đổi bởi một lệnh.
Đây 5
là một địa chỉ (số dòng) mà tại đó lệnh sau sẽ được thực thi. Lệnh chúng ta sử dụng là r
, lấy tên tệp làm đối số (ở đây b.txt
), đọc nó hoàn toàn và chèn nó vào đầu ra sau dòng hiện tại.
Vì nó đứng ở trên, sed
dòng lệnh này sẽ chỉ in đầu ra ra thiết bị đầu cuối, mà không ghi vào bất kỳ tệp nào. Bạn có thể chuyển hướng nó đến một tệp mới (không phải bất kỳ tệp đầu vào nào!) Bằng cách sử dụng chuyển hướng đầu ra của Bash:
sed '5r b.txt' a.txt > c.txt
Hoặc bạn có thể trực tiếp chỉnh sửa các tập tin đầu vào bên ngoài a.txt
bằng cách sử dụng sed
's -i
(đối với 'tại chỗ') switch. Nếu bạn viết nó dưới dạng -i.bak
, nó sẽ tạo một bản sao lưu của tệp đầu vào ban đầu với hậu tố .bak
trước:
sed -i '5r b.txt' a.txt
Một ví dụ:
$ 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