Konieczność iteracji po liście plików i dołączanie tekstu w pierwszym wierszu plików na tej liście w systemie Linux CentOS

0

Muszę być w stanie dołączyć tekst <?php na początku plików php na liście.

supernix
źródło
1
Czy pytasz o kod PHP? Czego spróbowałeś do tej pory?
Karan
Niestety musiałem zmienić tekst, ponieważ nie udało się wydrukować wszystkiego po wierszu <? Php, dopóki nie dodałem do niego niektórych backticksów. Większość badań, które studiowałem online, odbywa się za pomocą sed lub awk, a jednym przykładem jest PERL. Nie skupiam się tak bardzo na tym, którego języka używać, dopóki mogę rozwiązać ten problem. Byłoby miło, gdyby Clam AV mógł naprawić tę infekcję.
supernix
1
Byłoby również miło, gdyby twoje pytanie zawierało informację o tym, jaki system operacyjny. . . wygląda na to, że faktycznym zadaniem, które chcesz wykonać, jest dodanie ciągu tekstowego na początku kilku plików, a masz listę nazw plików, które chcesz zmodyfikować. Czy to jest poprawne?
ernie,
To jest poprawne. Temat ma system operacyjny, jest to instalacja CentOS Linux. Tak, plik tekstowy ma lokalizację folderu i nazwę pliku w formacie linia po linii. Uruchomiłem skrypt czyszczący, aby wyczyścić ewaluowany kod base64 z plików, a następnie utworzyłem plik tekstowy z plikami, które zostały wyczyszczone, jedynym problemem było to, że nie umieścił z <?phppowrotem na górze plików, które naprawił.
supernix

Odpowiedzi:

0

Mówisz „dołącz tekst <?php”, ale myślę, że masz na myśli „dodawanie”.

Może źle zrozumiałem pytanie, ale to powinno rozwiązać twój problem:

for FileName in * ; do (echo "<?php" ; cat $FileName) > corrected_$FileName ;done

Spowoduje to utworzenie wiązki plików o tych samych nazwach, z wyjątkiem tych, które mają przedrostek „poprawiony”. Jeśli chcesz samodzielnie zmienić pliki, możesz to zrobić:

for FileName in * ; do (echo "<?php" ; cat $FileName) > /tmp/corrected ; mv -f /tmp/corrected $FileName ;done

... ale upewnij się, że tego właśnie chcesz.

Philip Kearns
źródło