Portál AbcLinuxu, 17. listopadu 2025 07:09
: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.