[bash] rekurencyjnie zamienić wyrazy
  Home FAQ Contact Sign in
pl.comp.os.linux.programowanie only
 
Advanced search
POPULAR GROUPS

more...

pl.comp.os.linux.programowanie Profile…
 Up
[bash] rekurencyjnie zamienić wyrazy         


Author: Abu
Date: Oct 4, 2006 16:58

Witam,
Jak w całym katalogu przeszukać (z podkatalogami) pliki tekstowe i
zamienić wystąpienie XXX na YYYY?
--
http://forum.esperanto.org.pl/ - Kial Vi ne parlolas en tio cxi lingvo?
7 Comments
Re: [bash] rekurencyjnie zamienić wyrazy         


Author: Bartosz Feński aka fEnIo
Date: Oct 4, 2006 20:03

W artykule Abu napisał(a):
> Jak w całym katalogu przeszukać (z podkatalogami) pliki tekstowe i
> zamienić wystąpienie XXX na YYYY?

for i in `find . -type f`; do
sed -i -e 's/XXX/YYYY/g' $i';
done

pozdr,
fEnIo
--
,''`. Bartosz Fenski | mailto:fenio@debian.org | pgp:0x13fefc40 | irc:fEnIo
: :' : 32-050 Skawina - Glowackiego 3/15 - malopolskie v. - Poland
`. `' phone:+48602383548 | proud Debian maintainer and user
`- http://skawina.eu.org | jid:fenio@jabber.org | rlu:172001
6 Comments
Re: [bash] rekurencyjnie zamienić wyrazy         


Author: Michał Nazarewicz
Date: Oct 5, 2006 00:53

> W artykule Abu napisał(a):
>> Jak w całym katalogu przeszukać (z podkatalogami) pliki tekstowe i
>> zamienić wystąpienie XXX na YYYY?

http://groups.google.com/group/comp.unix.shell/msg/6664daa91f675091

Bartosz Feński aka fEnIo debian.org> writes:
> for i in `find . -type f`; do
> sed -i -e 's/XXX/YYYY/g' $i';
> done

Sypnie się, gdy w nazwie pliku wystąpi spacja, znak tabulacji lub
przejścia do nowej linii. Ponadto przełącznik -i jest rozszerzeniem.

--
Pozdrawiam _ _
.o. | Wasal Jasnie Oswieconej Pani Informatyki o' \,=./ `o
..o | Michal "mina86" Nazarewicz (o o)
ooo +--jabber.org>-------ooO--(_)--Ooo--
5 Comments
Re: [bash] rekurencyjnie zamienić wyrazy         


Author: Bartosz Feński aka fEnIo
Date: Oct 5, 2006 02:00

W artykule Michał Nazarewicz napisał(a):
>> for i in `find . -type f`; do
>> sed -i -e 's/XXX/YYYY/g' $i';
>> done
>
> Sypnie się, gdy w nazwie pliku wystąpi spacja, znak tabulacji lub

find . -type f -print0 | xargs -0 sed -i -e 's/XXX/YYYY/g'
> przejścia do nowej linii. Ponadto przełącznik -i jest rozszerzeniem.

Nie jest rozszerzeniem, a po prostu funkcjonalnością wprowadzoną w wersji
4.x jeśli się nie mylę.

Zakładam, że przedmówca nie używa prehistorii ;P

pozdr,
fEnIo

--
,''`. Bartosz Fenski | mailto:fenio@debian.org | pgp:0x13fefc40 | irc:fEnIo
: :' : 32-050 Skawina - Glowackiego 3/15 - malopolskie v. - Poland
`. `' phone:+48602383548 | proud Debian maintainer and user
`- http://skawina.eu.org | jid:fenio@jabber.org | rlu:172001
4 Comments
Re: [bash] rekurencyjnie zamienić wyrazy         


Author: Stachu 'Dozzie' K.
Date: Oct 5, 2006 02:54

On 05.10.2006, Bartosz Feński aka fEnIo debian.org> wrote:
> W artykule Michał Nazarewicz napisał(a):
>
>>> for i in `find . -type f`; do
>>> sed -i -e 's/XXX/YYYY/g' $i';
>>> done
>>
>> Sypnie się, gdy w nazwie pliku wystąpi spacja, znak tabulacji lub
>
> find . -type f -print0 | xargs -0 sed -i -e 's/XXX/YYYY/g'
>
>> przejścia do nowej linii. Ponadto przełącznik -i jest rozszerzeniem.
>
> Nie jest rozszerzeniem, a po prostu funkcjonalnością wprowadzoną w wersji
> 4.x jeśli się nie mylę.

Jest rozszerzeniem. W stosunku do SUSv3, na ten przykład. Podobnie jak
-print0 jest rozszerzeniem GNU finda, a -0 -- GNU xargs.
Show full article (0.75Kb)
3 Comments
Re: [bash] rekurencyjnie zamienić wyrazy         


Author: Bartosz Feński aka fEnIo
Date: Oct 11, 2006 09:05

W artykule Stachu 'Dozzie' K. napisał(a):
>>>> for i in `find . -type f`; do
>>>> sed -i -e 's/XXX/YYYY/g' $i';
>>>> done
>>>
>>> Sypnie się, gdy w nazwie pliku wystąpi spacja, znak tabulacji lub
>>
>> find . -type f -print0 | xargs -0 sed -i -e 's/XXX/YYYY/g'
>>
>>> przejścia do nowej linii. Ponadto przełącznik -i jest rozszerzeniem.
>>
>> Nie jest rozszerzeniem, a po prostu funkcjonalnością wprowadzoną w wersji
>> 4.x jeśli się nie mylę.
>
> Jest rozszerzeniem. W stosunku do SUSv3, na ten przykład.

I pewnie przestanie gdy wyjdzie SUSv4.
> Podobnie jak -print0 jest rozszerzeniem GNU finda, a -0 -- GNU xargs.

Te narzędzia by się musiały chyba w ogóle nie rozwijać by trzymać się
standardu. Na szczęście to standardy je gonią, a nie na odwrót ;P
Show full article (1.11Kb)
2 Comments
Re: [bash] rekurencyjnie zamienić wyrazy         


Date: Oct 11, 2006 09:29

On 2006-10-11, Bartosz Feński aka fEnIo wrote:
>> Jest rozszerzeniem. W stosunku do SUSv3, na ten przykład.
> I pewnie przestanie gdy wyjdzie SUSv4.
Co do tego to nie jestem pewien :)
>> Podobnie jak -print0 jest rozszerzeniem GNU finda, a -0 -- GNU xargs.
> Te narzędzia by się musiały chyba w ogóle nie rozwijać by trzymać się
> standardu. Na szczęście to standardy je gonią, a nie na odwrót ;P
Otóż to. Nie wiem dlaczego SUS jest aż tak "wąską" specyfikacją.
Jak dla mnie -0/-print0 jest opcją bardzo przydatną i powinna wchodzić w
skład "core" xargs/find a nie jako rozszerzenie. Pozostaje tylko mieć
nadzieję, że sytuacja się rozwinie.

--
Damian Szuberski
no comments
Re: [bash] rekurencyjnie zamienić wyrazy         


Author: Micha³ Nazarewicz
Date: Oct 14, 2006 08:48

> W artykule Stachu 'Dozzie' K. napisał(a):
>> Podobnie jak -print0 jest rozszerzeniem GNU finda, a -0 -- GNU xargs.

Bartosz Feński aka fEnIo debian.org> writes:
> Te narzędzia by się musiały chyba w ogóle nie rozwijać by trzymać się
> standardu. Na szczęście to standardy je gonią, a nie na odwrót ;P

Nie za bardzo rozumiem co masz na myśli - oczywistym jest, że to
zazwyczaj standard "jest w tyle", bo standard nie może być swoim
podzbiorem właściwym. Natomiast narzędzia implementujące standard z
założenia zawierają wszystko o czym mówi standard więc dopiero one
mogą być jego nadzbiorem właściwym.

Inna sprawą jest, że osobiście uważam, że w obecnej formie standardu
narzędzia find i xargs są bezużyteczne. Nie zmienia to faktu, że -0 i
-print0 są rozszerzeniami w stosunku do standardu.

--
Pozdrawiam _ _
.o. | Wasal Jasnie Oswieconej Pani Informatyki o' \,=./ `o
..o | Michal "mina86" Nazarewicz (o o)
ooo +--jabber.org>-------ooO--(_)--Ooo--
no comments