01/10/2018, 09:04
Lệnh replace một ký tự / từ / cụm từ trong nội dung của file trên Linux
Các pro cho e hỏi là trên Linux có lệnh nào mà có thể find & replace 1 từ hay cụm từ đc nhập vào ko ạ?
Theo e tìm hiểu thì có lệnh: sed 's/<word, phrase>/<replacement>/' <file's name> nhưng nó chỉ thay đổi tạm thời thôi (tức là thay đổi trên terminal, còn bản chất trong file nội dung vẫn giữ nguyên) nên lên đây hỏi các pro còn lệnh nào khác ko ạ?
Bài liên quan





Thêm
-ivào câu lệnhsedThanks anh, nhân tiện cho e hỏi luôn là có cách nào làm cho nó replace cái word mình truyền vào ko viết hoa trong kia từ khóa trong file lại viết hoa ko ạ? (ví dụ lệnh
grep ...vàgrep -i ...ấy )Em thử thêm
gIvào cuối lệnhsedsed Case Insensitive Search Matching - nixCraft
Q. How do I perform a case-insensitive search using sed under UNIX / Linux? I'd like to match all combination of word - foo, FOO, FoO and so on while replacing or performing other operations.
Vậy trong trường hợp mình cần sử dụng
gthì để như vậy hả anh?Không em, anh bỏ thêm g vào để nó tìm hết ấy mà. Dùng I là đủ rồi.
Cho e hỏi thêm 1 vấn đề nữa là ở chỗ:
's/<word, phrase>/<replacement/'thì cáiword, phrasevàreplacementmình có đc phép để một chuỗi (có khoảng trắng) ko a?Ví dụ trong file có nội dung là:
Happy new year!thì e để:
thì nó vẫn ko đổi đc cụm từ
new yearthànhold yearanh ạ :((em đừng có dùng dấu
"ở trong phần find và replace làm gì.