[Question] tìm kiếm ra 1 list file, edit bằng sed nội dung của các file tìm thấy? |
17/07/2013 23:30:38 (+0700) | #1 | 277537 |
zadops
Member
|
0 |
|
|
Joined: 24/10/2002 14:01:03
Messages: 3
Offline
|
|
chào các bác, các bác giúp em vụ này với ạ, em là newbie nên chưa thành thạo lắm về linux
hiện tại em có một loạt các file html, trong đấy có link down file source về, hiện h em muốn update lại name của file source đấy trong các file html trên
em định là sẽ dùng lệnh find để tìm ra các file html, xong dùng lệnh sed để edit lại nội dung trong các file đấy
nhưng làm thế nào để liên kết giữa 2 lệnh trên thì em chưa nghĩ ra được cách
có bác nào cho em xin cao kiến với ạ
em cảm ơn trước
|
|
|
|
|
[Question] tìm kiếm ra 1 list file, edit bằng sed nội dung của các file tìm thấy? |
17/07/2013 23:44:04 (+0700) | #2 | 277539 |
|
quanta
Moderator
|
Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
|
|
Ôi, bạn đăng ký hơn 10 năm rồi, hôm nay mới post bài đầu tiên à.
Bạn thử thế này xem:
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>
|
|
Let's build on a great foundation! |
|
|
|
[Question] tìm kiếm ra 1 list file, edit bằng sed nội dung của các file tìm thấy? |
18/07/2013 12:54:41 (+0700) | #3 | 277559 |
zadops
Member
|
0 |
|
|
Joined: 24/10/2002 14:01:03
Messages: 3
Offline
|
|
nick em đăng kí từ hồi còn dial up, nhưng cũng chỉ để vào đọc tham khảo là chính thôi bác ợ
đầu tiên là cảm ơn bác, câu lệnh đã chạy theo như mong muốn của em rồi, 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
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
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?
|
|
|
|
|
[Question] tìm kiếm ra 1 list file, edit bằng sed nội dung của các file tìm thấy? |
18/07/2013 13:27:17 (+0700) | #4 | 277560 |
|
quanta
Moderator
|
Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
|
|
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:
Bạn ấn Ctrl-V rồi Ctrl-M thì nó sẽ hiển thị ^M nhé. |
|
Let's build on a great foundation! |
|
|
|
[Question] tìm kiếm ra 1 list file, edit bằng sed nội dung của các file tìm thấy? |
18/07/2013 14:31:25 (+0700) | #5 | 277561 |
zadops
Member
|
0 |
|
|
Joined: 24/10/2002 14:01:03
Messages: 3
Offline
|
|
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
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
|
|
|
|
|
[Question] tìm kiếm ra 1 list file, edit bằng sed nội dung của các file tìm thấy? |
18/07/2013 15:59:31 (+0700) | #6 | 277565 |
|
quanta
Moderator
|
Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
|
|
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. |
|
Let's build on a great foundation! |
|
[Question] tìm kiếm ra 1 list file, edit bằng sed nội dung của các file tìm thấy? |
19/07/2013 12:14:01 (+0700) | #7 | 277589 |
vd_
Member
|
0 |
|
|
Joined: 06/03/2010 03:05:09
Messages: 124
Offline
|
|
thay vì ^M thì có thể dùng \r |
|
|
Users currently in here |
1 Anonymous
|
|
Powered by JForum - Extended by HVAOnline
hvaonline.net | hvaforum.net | hvazone.net | hvanews.net | vnhacker.org
1999 - 2013 ©
v2012|0504|218|
|
|