Portál AbcLinuxu, 14. května 2025 23:21
:n ./**.html
. Nahrazení textu by se dalo udělat třeba takto - :bufdo %s/Windows/linux/
.
Poznámka:
Tento příklad je jen ilustrační, vytvořil jsem si dva soubory v obou řádek textu a nahradil jsem slovo Windows slovem Linux.
Děkuji
Petr
vim
(v příkazovém režimu) je v podstatě ed
(resp. ex
) a tím pádem jako sed
. Tzn. řádek vložíme příkazem a
. Lze kombinovat s bufdo
:
:a2 test .vloží text / řádek:
testza druhý řádek v souboru.
:/pokus/ test .udělá totéž za (prvním od aktulální pozice) řádkem obsahujícím
pokus
<header> <ul> <li>jeden</li> <li>dva</li> <li>dva</li> </ul> </header>PHP kod:
<? define("CESTA_K_PRIECINKU", "."); function najdi_vsetky_subory() { $cesta=CESTA_K_PRIECINKU; $subory=`find $cesta -name "*.html"`; $subory_pole=explode("\n", $subory); unset($subory_pole[count($subory_pole)-1]); return $subory_pole; } function prida_polozku_menu($path_file, $html_item) { $html=file_get_contents($path_file); /* hlada koniec menu v header */ $poz=strpos($html, '<header'); $poz=strpos($html, "\n\t</ul",$poz); /* hlada ul so zac. riadku */ /* vytvara novy subor v pamety */ $subor=substr($html, 0, $poz); $subor.=$html_item; $subor.=substr($html, $poz); file_put_contents($path_file, $subor); } function odobere_polozku_menu($path_file, $html_item) { $html=file_get_contents($path_file); /* hlada koniec menu v header */ $html=str_replace($html_item, '', $html); file_put_contents($path_file, $html); } $subory_cesta=najdi_vsetky_subory(); foreach($subory_cesta as $subor_cesta) { echo $subor_cesta."\n"; // ukazka pridania prida_polozku_menu($subor_cesta, "\n\t\t<li>pridane</li>"); // ukazka odobratia odobere_polozku_menu($subor_cesta, "\t\t<li>jeden</li>\n"); } ?>
vložit rádek na určitou pozici v souboru
<?php /* * kladne cislo - od zaciatku * kladne cislo neexistuje pozicia - prida na koniec * 0 - prida na koniec * zapocne cislo - prida od konca * zapocne cislo neexistuje pozicia - neurobi nic */ function pridaj_riadok($path, $position, $line) { $riadky=file($path); $pocet=count($riadky); if($position < (-$pocet)) return; if($position < 0) $index=$pocet+$position-1; else if($position == 0 || $position > $pocet) { $index=$pocet; $riadky[$index]=$line."\n"; goto preskoc; } else $index=$position-2; $riadky[$index].=$line."\n"; preskoc: file_put_contents($path, $riadky); } // pridaj_riadok('bla.html', 0, '<p>!!!</p>'); ?>
# nahrazeni Windows za linux sed 's/Windows/linux/' -i *.html # nahrazeni vsech vyskytu (v kazdem radku) sed 's/Windows/linux/g' -i *.html # pridani radku "linux", nad radek zacinajici "Windows" sed 's/^Windows/Linux\nWindows/' -i *.html # pridani radku "linux", nad radek obsahujici jen slovo "Windows" sed 's/^Windows$/Linux\nWindows/' -i *.html
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.