Article View: pl.comp.os.linux
Article #906774Re: Wyzwanie dla spryciarzy od one linerów bashowych :-P
From: Marcin Debowski
Date: Tue, 20 Dec 2022 22:58
Date: Tue, 20 Dec 2022 22:58
39 lines
2359 bytes
2359 bytes
On 2022-12-20, Pawel <ppf9@USUN_TOpoczta.fm> wrote:
> W dniu 20.12.2022 o 21:01, marrgol pisze:
>> On 20/12/2022 at 20.30, Roman Tyczka wrote:
>>> mam m.in. plik:
>>>
>>> jakiś_plik_z_nazwą_pliku.txt
>>>
>>> chcę zmienić "pl" na "dz", czyli nazwa się ma zmienić na:
>>>
>>> jakiś_dzik_z_nazwą_dziku.txt
>>>
>>> I tak we wszystkich plikach, we wszystkich podkatalogach, od katalogu
>>> nadrzędnego który będzie rootem dla tej operacji.
>>
>> Moja propozycja (może to nie one-liner, ale da się zapisać w jednej
>> linii, jak ktoś musi… ;-)):
>>
>> while read SRC
>> do
>> DST="$(basename "$SRC")"
>> mv "$SRC" "$(dirname "$SRC")/${DST//pl/dz}"
>> done < <(find /katalog/nadrzędny/ -depth)
>>
>> To zmieni „pl” na „dz” w nazwach i plików, i katalogów.
>> Jeśli zmiana miałaby dotyczyć tylko plików, to trzeba zmienić
>> „-depth)” na „-depth -type f)”.
>>
>>
> Specem nie jestem, ale czy nie wystarczy uzyc find z opcja -exec? Czy to
> nie powinno rozwiazac problemu?
A jak podmienisz fragment? Gołym findem bez bashowania to da się we
współpracy z takim dość sympatycznym programem rename.
find . -type f -exec rename 's/pl/dz/' {} \;
(dla bieżącego i głebiej)
--
Marcin
Technical Details
Message-ID:
<H6roL.2399453$ulh3.760041@fx06.ams1>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.man.poznan.pl!newsfeed.pionier.net.pl!3.eu.feeder.erje.net!2.eu.feeder.erje.net!feeder.erje.net!news.uzoreto.com!newsreader4.netcologne.de!news.netcologne.de!peer03.ams1!peer.ams1.xlned.com!news.xlned.com!feeder.cambriumusenet.nl!feed.tweaknews.nl!posting.tweaknews.nl!fx06.ams1.POSTED!not-for-mailReferences:
<63a205be$0$565$65785112@news.neostrada.pl> <87y1r1ew4z.fsf@alfa.kjonca> <63a20d6f$0$458$65785112@news.neostrada.pl> <tnt49u$p9lc$1@dont-email.me> <63a22e7d$0$470$65785112@news.neostrada.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.man.poznan.pl!newsfeed.pionier.net.pl!3.eu.feeder.erje.net!2.eu.feeder.erje.net!feeder.erje.net!news.uzoreto.com!newsreader4.netcologne.de!news.netcologne.de!peer03.ams1!peer.ams1.xlned.com!news.xlned.com!feeder.cambriumusenet.nl!feed.tweaknews.nl!posting.tweaknews.nl!fx06.ams1.POSTED!not-for-mail Newsgroups: pl.comp.os.linux From: Marcin Debowski <agatek@INVALID.zoho.com> Subject: Re: Wyzwanie dla spryciarzy od one linerów bashowych :-P References: <63a205be$0$565$65785112@news.neostrada.pl> <87y1r1ew4z.fsf@alfa.kjonca> <63a20d6f$0$458$65785112@news.neostrada.pl> <tnt49u$p9lc$1@dont-email.me> <63a22e7d$0$470$65785112@news.neostrada.pl> User-Agent: slrn/1.0.3 (Linux) Mime-Version: 1.0 Lines: 39 Message-ID: <H6roL.2399453$ulh3.760041@fx06.ams1> X-Complaints-To: abuse@tweaknews.nl NNTP-Posting-Date: Tue, 20 Dec 2022 22:58:47 UTC Organization: Tweaknews Date: Tue, 20 Dec 2022 22:58:47 GMT X-Received-Bytes: 2105 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit