<![CDATA[Latest posts for the topic "tìm kiếm ra 1 list file, edit bằng sed nội dung của các file tìm thấy?"]]> /hvaonline/posts/list/24.html JForum - http://www.jforum.net tìm kiếm ra 1 list file, edit bằng sed nội dung của các file tìm thấy? /hvaonline/posts/list/44968.html#277537 /hvaonline/posts/list/44968.html#277537 GMT tìm kiếm ra 1 list file, edit bằng sed nội dung của các file tìm thấy? Code:
$ cat 1.html
<a href="http://hvaonline.net">hvaonline</a>

$ find /path/to/document/root -type f -name '*.html' -print0 | xargs -0 sed -i.bak 's/hvaonline.net/vnhacker.org/g'

$ cat 1.html
<a href="http://vnhacker.org">hvaonline</a>
Nếu trong URL có dấu slash thì có thể đổi separator của `sed` thành # (để đỡ phải escape). Ví dụ: Code:
$ cat 1.html
<a href="http://hvaonline.net/forum">hvaonline</a>

$ find /path/to/document/root -type f -name '*.html' -print0 | xargs -0 sed -i.bak 's#hvaonline.net/forum#vnhacker.org/portal#g'

$ cat 1.html
<a href="http://vnhacker.org/portal">hvaonline</a>
]]>
/hvaonline/posts/list/44968.html#277539 /hvaonline/posts/list/44968.html#277539 GMT
tìm kiếm ra 1 list file, edit bằng sed nội dung của các file tìm thấy? /hvaonline/posts/list/44968.html#277559 /hvaonline/posts/list/44968.html#277559 GMT tìm kiếm ra 1 list file, edit bằng sed nội dung của các file tìm thấy?

zadops wrote:
nhưng cho em hỏi cái này, là tại sao phải dùng thêm những option find -print0 với xargs -0 vậy ạ em bỏ 2 option đấy đi thì câu lệnh vẫn được thực hiện như bth  
Bạn thử đổi tên mấy files html kia thành có khoảng trắng xem nó có chạy không ;)?

zadops wrote:
thêm câu hỏi nữa hơi không liên quan đến topic một chút, mà liên quan đến lệnh sed đấy là sau khi edit xong file html, thì ở cuối mỗi dòng lại xuất hiện thêm kí tự ^M ví dụ như thế này ạ var sid="";^M loader-121026.zip";^M  
Khả năng là ^M đã nằm đó từ trước rồi, bạn chỉ không nhìn thấy nó thôi. Bạn soạn thảo mấy files html kia trên Windows rồi upload lên Linux à?

zadops wrote:
em dùng dos2unix convert lại thì kí tự trên biến mất, nhưng có option nào đối với lệnh sed để bỏ kí tự đấy đi được ko?  
Code:
sed -e 's/^M$//'
Bạn ấn Ctrl-V rồi Ctrl-M thì nó sẽ hiển thị ^M nhé.]]>
/hvaonline/posts/list/44968.html#277560 /hvaonline/posts/list/44968.html#277560 GMT
tìm kiếm ra 1 list file, edit bằng sed nội dung của các file tìm thấy?

quanta wrote:
Bạn thử đổi tên mấy files html kia thành có khoảng trắng xem nó có chạy không ;)?  
em đã hiểu :D

quanta wrote:
Khả năng là ^M đã nằm đó từ trước rồi, bạn chỉ không nhìn thấy nó thôi. Bạn soạn thảo mấy files html kia trên Windows rồi upload lên Linux à?  
kí tự ^M trước khi edit bằng sed thì ko có bác ạ, chỉ xuất hiện sau khi edit. dùng lệnh cat hay soạn thảo bằng nano thì sẽ ko thấy, nhưng dùng vi/vim thì sẽ thấy xuất hiện ở cuối tât cả các dòng, trừ những dòng bị edit lại :-/ đành tạm thời hài lòng với dos2unix vậy ]]>
/hvaonline/posts/list/44968.html#277561 /hvaonline/posts/list/44968.html#277561 GMT
tìm kiếm ra 1 list file, edit bằng sed nội dung của các file tìm thấy?

zadops wrote:
kí tự ^M trước khi edit bằng sed thì ko có bác ạ, chỉ xuất hiện sau khi edit.  
Bạn có chắc không? Nội dung mấy files html kia từ đâu mà có?

zadops wrote:
dùng lệnh cat hay soạn thảo bằng nano thì sẽ ko thấy, nhưng dùng vi/vim thì sẽ thấy xuất hiện ở cuối tât cả các dòng, trừ những dòng bị edit lại :-/  
Chứng tỏ là nó đã ở đây từ trước rồi chứ?

zadops wrote:
đành tạm thời hài lòng với dos2unix vậy  
`sed` làm luôn được mà. Mình post ở trên rồi đấy.]]>
/hvaonline/posts/list/44968.html#277565 /hvaonline/posts/list/44968.html#277565 GMT
tìm kiếm ra 1 list file, edit bằng sed nội dung của các file tìm thấy? /hvaonline/posts/list/44968.html#277589 /hvaonline/posts/list/44968.html#277589 GMT