2016-10-12 5 views
0

감염된 파일 목록과 함께 list.txt 호스트에 업로드합니다. 다음과 같이 보입니다.for 루프의 파일 수정

file1.php 
file2.php 
cat/file3.php 
cat/subcat/file4.php 

감염된 파일은 첫 번째 줄에서만 수정됩니다. 그래서 나는 for 루프를 돌린다. 이 루프는 악성 코드가있는 전체 첫 줄을 <?php으로 변경해야합니다.

for file in $(cat list.txt); do sed -i '1s/.*/<?php/' *.php; done 

문제는 루프가 첫 번째 폴더 (file1 및 file2)에서만 파일을 변경하는 것 같습니다. 하위 폴더의 파일은 변경되지 않습니다. 내가 뭘 잘못했는지 알아?

답변

0

sed 명령에서 루프에 정의 된 변수를 실제로 사용하고 있지 않기 때문입니다. 시도

for file in $(cat list.txt); do sed -i '1s/.*/<?php/' $file; done 
+0

작품 대단히! 고마워. – Rob

+0

P. 하나만 제외하고 모든 폴더에서이 루프를 실행하는 방법이 있습니까?/$에있는 파일의 사용자 – Rob

+0

(egrep -v 'user /'list.txt); do sed -i '1s /.*/ gile