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
-i
vào câu lệnhsed
Thanks 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
gI
vào cuối lệnhsed
sed 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
g
thì để 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, phrase
vàreplacement
mì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 year
thànhold year
anh ạ :((em đừng có dùng dấu
"
ở trong phần find và replace làm gì.