Portál AbcLinuxu, 10. května 2025 06:41

Dotaz: Příkaz na nahrazení části textu

Ratoncito avatar 7.6.2009 13:46 Ratoncito | skóre: 19 | blog: Foso
Příkaz na nahrazení části textu
Přečteno: 341×
Odpovědět | Admin
Dobrý den Chci si do ~/.pekwm/menu přidat několik položek, ale pokaždé co spustím mmaker tak jsou pryč a nebaví mě po každé installaci to tam ručně kopírovat. Neexistuje nějaký příkaz který by v souboru našel kus textu a nahradil ho jiným?
OS: ArchLinux, WM: Compiz-fusion | Na toho vemte bič a hůl, to není člověk, to je vůl!!!
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

7.6.2009 15:31 ruza.eu
Rozbalit Rozbalit vše Re: Příkaz na nahrazení části textu
Odpovědět | | Sbalit | Link | Blokovat | Admin

sed 's/dejpryc/dejsem/g'

Ratoncito avatar 7.6.2009 21:38 Ratoncito | skóre: 19 | blog: Foso
Rozbalit Rozbalit vše Re: Příkaz na nahrazení části textu
O tom vím, ale já chci jeden řádek nahradit dvěma.
OS: ArchLinux, WM: Compiz-fusion | Na toho vemte bič a hůl, to není člověk, to je vůl!!!
7.6.2009 21:50 Radek Novacek | skóre: 3
Rozbalit Rozbalit vše Re: Příkaz na nahrazení části textu

A co  sed 's/dejpryc/dej\nsem/g' ?

Ratoncito avatar 8.6.2009 17:08 Ratoncito | skóre: 19 | blog: Foso
Rozbalit Rozbalit vše Re: Příkaz na nahrazení části textu
Dalším problémem je nejspíš adresa s /.
OS: ArchLinux, WM: Compiz-fusion | Na toho vemte bič a hůl, to není člověk, to je vůl!!!
Tarmaq avatar 8.6.2009 17:10 Tarmaq | skóre: 39
Rozbalit Rozbalit vše Re: Příkaz na nahrazení části textu
Tomu uplne nerozumim, co tim myslis?
Don't panic!
Ratoncito avatar 8.6.2009 17:16 Ratoncito | skóre: 19 | blog: Foso
Rozbalit Rozbalit vše Re: Příkaz na nahrazení části textu
\/, on to nenahrazuje, ale doplňuje za to.
OS: ArchLinux, WM: Compiz-fusion | Na toho vemte bič a hůl, to není člověk, to je vůl!!!
Ratoncito avatar 8.6.2009 17:21 Ratoncito | skóre: 19 | blog: Foso
Rozbalit Rozbalit vše Re: Příkaz na nahrazení části textu
On tam místo \n doplňuje \ndejpryč.
OS: ArchLinux, WM: Compiz-fusion | Na toho vemte bič a hůl, to není člověk, to je vůl!!!
Tarmaq avatar 8.6.2009 17:24 Tarmaq | skóre: 39
Rozbalit Rozbalit vše Re: Příkaz na nahrazení části textu
$ cat foo 
xyz
$ sed 's/xyz/x\ny\nz/' foo 
x
y
z
Don't panic!
Tarmaq avatar 8.6.2009 17:22 Tarmaq | skóre: 39
Rozbalit Rozbalit vše Re: Příkaz na nahrazení části textu
stale z toho nejsem moudry, kde je problem.. ;]
jak doplnuje za to? co nenahrazuje? jako ze se to neulozi do toho souboru?
Don't panic!
Ratoncito avatar 8.6.2009 17:29 Ratoncito | skóre: 19 | blog: Foso
Rozbalit Rozbalit vše Re: Příkaz na nahrazení části textu
Script:
mmaker -f pekwm
cp ~/.pekwm/menu ~/.pekwm/menu~
rm ~/.pekwm/menu
sed 's/		Entry = "Linux Breakout 2" { Actions = "Exec lbreakout2 &" }/		Entry = "Linux Breakout 2" { Actions = "Exec lbreakout2 &" }\n		Entry = "Urban Terror" { Actions = "Exec \/sklad\/Torrent\/UrbanTerror\/ioUrbanTerror.i386 &" }\n/g' ~/.pekwm/menu~ > ~/.pekwm/menu
Výsledek:
		Entry = "Linux Breakout 2" { Actions = "Exec lbreakout2 		Entry = "Linux Breakout 2" { Actions = "Exec lbreakout2 &" }" }
		Entry = "Urban Terror" { Actions = "Exec /sklad/Torrent/UrbanTerror/ioUrbanTerror.i386 		Entry = "Linux Breakout 2" { Actions = "Exec lbreakout2 &" }" }
OS: ArchLinux, WM: Compiz-fusion | Na toho vemte bič a hůl, to není člověk, to je vůl!!!
Tarmaq avatar 8.6.2009 17:49 Tarmaq | skóre: 39
Rozbalit Rozbalit vše Re: Příkaz na nahrazení části textu
chyba byla v tom, ze nebyl escapnuty znak &
zkus
sed 's/		Entry = "Linux Breakout 2" { Actions = "Exec lbreakout2 &" }/		Entry = "Linux Breakout 2" { Actions = "Exec lbreakout2 \&" }\n		Entry = "Urban Terror" { Actions = "Exec \/sklad\/Torrent\/UrbanTerror\/ioUrbanTerror.i386 \&" }\n/g' ~/.pekwn/menu
jinak pro to co delas je sikovny prepinac sedu -i - tedy "edit files in place", coz znamena ze neni treba provest zkopirovani, smazani stareho a ulozeni vystupu zase zpet.. jeste bych pouzil # misto / jako oddelovac.. zjednodusene bych to napsal asi takhle:
sed -i 's#		Entry = "Linux Breakout 2" { Actions = "Exec lbreakout2 &" }#&\n		Entry = "Urban Terror" { Actions = "Exec /sklad/Torrent/UrbanTerror/ioUrbanTerror.i386 \&" }\n#g'
Don't panic!
Tarmaq avatar 8.6.2009 17:50 Tarmaq | skóre: 39
Rozbalit Rozbalit vše Re: Příkaz na nahrazení části textu
pardon chybi tam nazev editovaneho souboru:
sed 's#		Entry = "Linux Breakout 2" { Actions = "Exec lbreakout2 &" }#&\n		Entry = "Urban Terror" { Actions = "Exec /sklad/Torrent/UrbanTerror/ioUrbanTerror.i386 \&" }\n#g' ~/.pekwm/menu
Don't panic!
Tarmaq avatar 8.6.2009 17:51 Tarmaq | skóre: 39
Rozbalit Rozbalit vše Re: Příkaz na nahrazení části textu
pardon chybi tam nazev editovaneho souboru:
sed -i 's#		Entry = "Linux Breakout 2" { Actions = "Exec lbreakout2 &" }#&\n		Entry = "Urban Terror" { Actions = "Exec /sklad/Torrent/UrbanTerror/ioUrbanTerror.i386 \&" }\n#g' ~/.pekwm/menu
Don't panic!
Ratoncito avatar 9.6.2009 14:39 Ratoncito | skóre: 19 | blog: Foso
Rozbalit Rozbalit vše Re: Příkaz na nahrazení části textu
Děkuji
OS: ArchLinux, WM: Compiz-fusion | Na toho vemte bič a hůl, to není člověk, to je vůl!!!

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.