修改for循环中的文件

时间:2016-10-12 22:34:59

标签: for-loop ssh sed

我上传到主机list.txt,其中包含受感染文件列表。它看起来像这样:

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

仅在第1行修改受感染的文件。所以我运行for循环。此循环必须将具有恶意代码的整个第一行更改为<?php

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

问题是循环似乎只在第一个文件夹(file1和file2)中更改文件。子文件夹中的文件不会更改。知道我做错了吗?

1 个答案:

答案 0 :(得分:0)

这是因为在sed命令中你并没有真正使用循环中定义的变量。 尝试

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