Trong vim tôi muốn thay thế một đường dẫn dài bằng một đường dẫn /a/b/f/g/d/g
khác /s/g/w/d/g/r
trong tệp văn bản. Thông thường tôi sử dụng \/
nhưng có quá nhiều dấu gạch chéo ở đây. Có cách nào dễ hơn không?
Trong vim tôi muốn thay thế một đường dẫn dài bằng một đường dẫn /a/b/f/g/d/g
khác /s/g/w/d/g/r
trong tệp văn bản. Thông thường tôi sử dụng \/
nhưng có quá nhiều dấu gạch chéo ở đây. Có cách nào dễ hơn không?
Câu trả lời:
Có lẽ bạn có thể sử dụng sed
Ví dụ 1 -
@
dấu phân cách sed : Thay thế/opt/omni/lbin
cho/opt/tools/bin
Khi bạn thay thế một tên đường dẫn có
/
, bạn có thể sử dụng@
như một dấu phân cách thay vì/
. Trong ví dụ sed bên dưới, trong dòng cuối cùng của tệp đầu vào,/opt/omni/lbin
đã được thay đổi thành/opt/tools/bin
.$ sed 's@/opt/omni/lbin@/opt/tools/bin@g' path.txt /usr/kbos/bin:/usr/local/bin:/usr/jbin/:/usr/bin:/usr/sas/bin /usr/local/sbin:/sbin:/bin/:/usr/sbin:/usr/bin:/opt/omni/bin: /opt/tools/bin:/opt/omni/sbin:/root/bin
Từ: http : //www.thegeek ware.com/2009/10/unix-sed-tutorial-advified-sed-substlation-examples/