Sed
Marcel Kolaja
xkolaja na aurora.fi.muni.cz
Úterý Září 3 21:06:12 CEST 2002
On Tue, Sep 03, 2002 at 08:15:02PM +0200, Alexei Sveshnikov wrote:
> > > > cat soubor.txt | sed -e 's/RET1/RET2/g' > soubor.txt
> > > hmm, hodne spatnej napad, zkuste si to spustit
> > Nerikam ze to je nezavisle na operacnim systemu. Ale na RedHat 7.3 je to
> > vyzkousene a funguje.
> Presneji receno to zalezi na poradi, v kterem je presmerovan vstup/vystup
> z 'cat' do 'sed' a ze 'sed' do souboru. Bezpecneji je asi pouzivat
> konstrukci typu
> cat soubor.txt | (sleep 1; sed -e 's/RET1/RET2/g' >soubor.txt)
> Souhlasim ale, ze pokud je na disku dost mista je lepsi pouzivat docasny
> soubor.
Přesněji řečeno i tohle je špatně (prostě to může fungovat, ale taky
nemusí):
xkolaja na triton(pts/1):~/tmp$ ls -l soubor.txt
-rw------- 1 xkolaja student 22905937 zář 3 20:56 soubor.txt
xkolaja na triton(pts/1):~/tmp$ cat soubor.txt | (sleep 1; sed -e 's/RET1/RET2/g' >soubor.txt)
xkolaja na triton(pts/1):~/tmp$ ls -l soubor.txt
-rw------- 1 xkolaja student 8192 zář 3 20:58 soubor.txt
xkolaja na triton(pts/1):~/tmp$
Pokud používáte takovéhle skripty, tak se taky jednoho dne můžete divit,
proč Vám fungující skript najednou přestal fungovat. Jednoduše musíte
použít konstrukci typu sed; mv nebo perl (nebo ještě něco jiného ale
určitě ne tohle :-)).
> Alexej Sveshnikov
S pozdravem
Marcel Kolaja http://www.fi.muni.cz/~xkolaja/
NLPlab FI MU http://nlp.fi.muni.cz/
--------------------------------------------------------------------------
"If you want the holes in your knowledge showing up try teaching someone."
-- Alan Cox
Další informace o konferenci Linux