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 ạ?
Lệnh replace một ký tự / từ / cụm từ trong nội dung của file trên Linux
Thêm -i
vào câu lệnh sed
sed -i 's/<word, phrase>/<replacement>/' <file's name>
2 Likes
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ệnh sed
sed -i 's/<word, phrase>/<replacement>/gI' <file's name>
3 Likes
Vậy trong trường hợp mình cần sử dụng g
thì để như vậy hả anh?
sed -i 's/<word, phrase>/<replacement>/g/gI' <file's name>
Không em, anh bỏ thêm g vào để nó tìm hết ấy mà. Dùng I là đủ rồi.
2 Likes
Cho e hỏi thêm 1 vấn đề nữa là ở chỗ: 's/<word, phrase>/<replacement/'
thì cái word, 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 để:
sed -i 's/"new year"/"old year"/gI' file
thì nó vẫn ko đổi đc cụm từ new year
thành old year
anh ạ :((
em đừng có dùng dấu "
ở trong phần find và replace làm gì.
1 Like