Portál AbcLinuxu, 7. května 2024 12:32


Dotaz: Náhrada textu ve více souborech

robotics avatar 27.12.2009 23:03 robotics | skóre: 29 | blog: o_vsem_moznem
Náhrada textu ve více souborech
Přečteno: 498×
Odpovědět | Admin
Potřeboval bych nahradit text ve více souborech. Hledal sem na netu, ale nějaké příklady ale furt mi to hlásí chybný argumenty :-(.

#!/bin/bash

find /media/venku/games/test/ -type f -print0 | xargs -0 sed -i 's|\/home\/martin\/games|\/media\/venku\/games'

Terminál mi pak řve:

martin@debian:/media/venku/games/test$ ./nahrada.sh sed: -e výraz #1, znak 45: unterminated `s' command

Děkuji za každou pomoc :-(
Používejte Windows.

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

27.12.2009 23:35 Vojtěch Horký | skóre: 39 | blog: Vojtův zápisník | Praha
Rozbalit Rozbalit vše Re: Náhrada textu ve více souborech
Odpovědět | | Sbalit | Link | Blokovat | Admin
To je jasný, že řve - chybí tam svislítko (a možná ještě g):
sed -i 's|\/home\/martin\/games|\/media\/venku\/games|'
I am always ready to learn although I do not always like to be taught. (W. Churchill)
robotics avatar 27.12.2009 23:41 robotics | skóre: 29 | blog: o_vsem_moznem
Rozbalit Rozbalit vše Re: Náhrada textu ve více souborech
Aha, tak to se omlouvám, to svislítko sem přehlíd nebo v otm příkladu ani nebylo :-). Argument "g" po mě chce vstup vystup soubor nebo co :-). Každopádně děkuji.
28.12.2009 00:32 Lubos Kopecky | skóre: 32
Rozbalit Rozbalit vše Re: Náhrada textu ve více souborech
novy svislitko a g, tedy v zapise "|g" rika, ze se pripadne nahrazeni provede na jednom radku vicekrat, bez g to nahradi pouze prvni vyskyt a preskoci na prohledavani dalsiho radku
robotics avatar 27.12.2009 23:45 robotics | skóre: 29 | blog: o_vsem_moznem
Rozbalit Rozbalit vše Re: Náhrada textu ve více souborech
Tak tam to svislítko zapoměli dát do toho příkladu >:-|
28.12.2009 10:21 voda | skóre: 28
Rozbalit Rozbalit vše Re: Náhrada textu ve více souborech
Ono je svislítko i v příkladu, ale protože je řádek moc dlouhý, tak se nezobrazil celý. Je tam find /cesta/do/adresáře -type f -print0 | xargs -0 sed -i 's|hledaný text|nový text|g'.
28.12.2009 10:46 podlesh | skóre: 38 | Freiburg im Breisgau
Rozbalit Rozbalit vše Re: Náhrada textu ve více souborech
Odpovědět | | Sbalit | Link | Blokovat | Admin
Mimochodem: svislítko je tam použito místo tradičního lomítka právě proto, aby se ta lomítka v textu nemusela escapovat.
find /media/venku/games/test/ -type f -print0 | xargs -0 sed -i 's|/home/martin/games|/media/venku/games|'
Osobně raději používám čárky (svislítko je přeci jen specikální znak v regulárních výrazech), ale je to čistě věc citu.

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.