Har en liten uppgift. Vill genom bash gå igenom alla filer i en katalog (underkataloger också, rekursivt alltså), öppna dem med filtillägget .ihtml eller .php och sedan inne i dem ersätta modules.php med index.php.
Alltså en search and replace på ett helt katalogträds textfiler.
Har fått förslaget att göra detta med grep och awk. Att köra en grep med flaggan -R och sedan pipa det genom gawk. Men problemet är att jag kan mycket lite om båda. Någon som har lust och hjälpa till? ;)
Vad gör skripten ovan? Ersätter de alla förekommster av modules.php i alla .php och .ihtml filer med index.php? Det är alltså texten i filerna som är det viktiga, inte filnamnen. Kan nämligen inte se det i skripten. Men det är förmodligen jag som inte kan :)
find kommandot letar efter alla .php och alla .html filer den hittar från där du står och neråt i katalogstrukturen.
För varje fil den hittar kör den execsed.sh med filensnamn som argument (inklusive väg från där du står).
sed programet byter sedan ut alla modules.php til index.php den hittar i filen och skriver ut resultatet till filen zzz, zzz flyttas sedan så att den ersätter den ursprunliga filen.
Nu känner jag mig dum. Hade tänkt och använda samma skript till en ny uppgift. Att ersätta mysql_query( med $db->sqlQuery men får det inte att funka! Någon?
251 ms totalt · 4 externa anrop · v20260731065814-full.bde7d14f