bash script (odstranenie /n z posledneho riadku suboru)

Petr Vileta petr na practisoft.cz
Neděle Květen 23 04:19:40 CEST 2004


"J.F. Kennedy" <craken na craken.tk> píše v diskusním příspěvku
news:20040523010748.599381cc.craken na craken.tk...
> Dakujem za odozvu,
> To by slo, ten subor by nemal dosiahnut viac ako 150kb a to je uz naozaj
extrem.

Takze predpokladam, ze sobor se vejde nacist do pameti. Pokud ne, nevim co
to udela :-)
Program si ulozte pod libovolnym nazvem, treba "stripcr" (nemusi mit priponu
".pl") a spousti se to

stripcr /cesta/vstupni_soubor /cesta/vystupni_soubor

Nekontroluje se, zda vystupni soubor existuje, ale proste se vytvori. Take
muzete pouzit stejny nazev pro vstupni i vystupni soubor, v tom pripade ho
to prepise!

---CUT---
#!/usr/bin/perl

$infile=$ARGV[0]; $outfile=$ARGV[1]; $soubor='';
if(length($infile)==0 or length($outfile)==0) {print "Uziti:\nstripcr
/cesta/vstupni_soubor /cesta/vystupni_soubor\n"; exit 0;}
open(IN,"<$infile");
while($r = <IN>) {$soubor .= $r;}
close IN;
$soubor=~s/^(.+?)\n*$/$1/s;
open(OUT,">$outfile");
print $soubor;
close OUT;
---CUT---

Program odstranuje veskere "\n" na konci souboru. Pokud byste chtel
odstranit pouze posledni JEDEN "\n" a ostatni tam nechat, tak nahradte radku

$soubor=~s/^(.+?)\n*$/$1/s;

radkou

$soubor=~s/^(.+?)\n$/$1/s;

(Je tam vynechana 1 hvezdicka)

At vam to pomuze.

--
Petr



Další informace o konferenci Linux