Nếu bạn có nhiều mẫu tìm kiếm hơn, bạn có thể lưu chúng trong một tệp và đọc các thay thế từ đó. Ví dụ: giả sử đây là nội dung của replacements.txt
:
www\.abcdef www.test.abcdef
www\.klmnop www.test.klmnop
Sau đó, bạn có thể đọc danh sách N thay thế và thay thế chúng bằng:
while read from to; do
sed -i "s/$from/$to/" infile.txt ;
done < replacements.txt
GHI CHÚ:
- Điều này giả định rằng chuỗi tìm kiếm của bạn không chứa khoảng trắng và bất kỳ ký tự lạ nào cần được thoát vào
replacements.txt
.
- Nó sẽ chạy một cái
sed
cho mỗi lần thay thế có thể mất một lúc nếu bạn có nhiều thao tác thay thế.
- Nó có thể xử lý một số lượng thay thế tùy ý (hàng ngàn hoặc hàng triệu hoặc bất cứ điều gì) miễn là bạn không bận tâm rằng sẽ mất thêm một chút thời gian.
Một lựa chọn khác là viết phần trên dưới dạng sed
tập lệnh:
s/www\.abcdef/www\.test\.abcdef/g;
s/www\.kmlnop/www\.test\.klmnop/g;
s/aaaa/bbbb/g;
s/cccc/dddd/g;
s/eeee/ffff/g;
Sau đó, bạn có thể chạy tập lệnh trên tệp của mình và nó sẽ thực hiện tất cả các thay thế trong một lần:
sed -f replace.sed infile.txt