Portál AbcLinuxu, 12. května 2025 10:39

Dotaz: Bash: náhrada mezer v názvech souborů podtržítkem

25.3.2016 15:41 petr
Bash: náhrada mezer v názvech souborů podtržítkem
Přečteno: 477×
Odpovědět | Admin
Názvy některých souborů v adresáři obsahují mezery. Jak hromadně nahradit mezery v názvech podtržítkem?
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

wamba avatar 25.3.2016 16:22 wamba | skóre: 38 | blog: wamba
Rozbalit Rozbalit vše Re: Bash: náhrada mezer v názvech souborů podtržítkem
Odpovědět | | Sbalit | Link | Blokovat | Admin
např.
rename -v ' ' '_' *
(neřeší 2mezery) nebo
perl-rename  -v 's/\s/_/g' *
This would have been so hard to fix when you don't know that there is in fact an easy fix.
25.3.2016 16:40 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Bash: náhrada mezer v názvech souborů podtržítkem
Odpovědět | | Sbalit | Link | Blokovat | Admin
for f in *\ *; do mv -vi "$f" "${f// /_}"; done

(neřeší situace, kdy by se měla dvě různá jména přejmenovat na stejné)

25.3.2016 18:27 petr
Rozbalit Rozbalit vše Re: Bash: náhrada mezer v názvech souborů podtržítkem
Díky, funguje.
25.3.2016 17:23 tonda | skóre: 8
Rozbalit Rozbalit vše Re: Bash: náhrada mezer v názvech souborů podtržítkem
Odpovědět | | Sbalit | Link | Blokovat | Admin
detox -s utf_8 -r -v -n /adresar

Odstraní a nahradí nestandardní znaky v názvech.

-n ukáže návrhy, ale neprovede
25.3.2016 17:28 dustin | skóre: 63 | blog: dustin
Rozbalit Rozbalit vše Re: Bash: náhrada mezer v názvech souborů podtržítkem
Odpovědět | | Sbalit | Link | Blokovat | Admin
Rovnou bych použil detox, vyřeší i spoustu dalších starostí.
25.3.2016 17:28 dustin | skóre: 63 | blog: dustin
Rozbalit Rozbalit vše Re: Bash: náhrada mezer v názvech souborů podtržítkem
Pozdě :)
25.3.2016 20:34 pavele
Rozbalit Rozbalit vše Re: Bash: náhrada mezer v názvech souborů podtržítkem
A teď mi řekněte, jak odstranit všechny mezery na začátku a konci souboru a více mezer mezi slovy v souboru nehradit jediným podtržítkem, aby nevznikaly soubory typu "__soubor___který_obsahuje____více__mezer_.doc...

Jinak setkávám se s názvy adresářů jako:
  (mezera) Rok 2016 - dosud nevyřešené případy?: - (nutné) zpracovat.doc
25.3.2016 20:45 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Bash: náhrada mezer v názvech souborů podtržítkem

A kousat už budete sám?

wamba avatar 26.3.2016 01:57 wamba | skóre: 38 | blog: wamba
Rozbalit Rozbalit vše Re: Bash: náhrada mezer v názvech souborů podtržítkem
na to lze použít zmiňovaný perl-rename
perl-rename  -v 's/^\s+|\s+$//g;s/\s+/_/g' *
nebo třeba mezery změnit na _ jen mezi slovy, jinak je smazat:
perl-rename  -v 'BEGIN{use utf8;} utf8::decode($_);s/\b\s+\b/_/g; s/\s+//g; utf8::encode($_)' *
atd. Můžete použít celou sílu Perlu.
This would have been so hard to fix when you don't know that there is in fact an easy fix.
26.3.2016 10:31 pavele
Rozbalit Rozbalit vše Re: Bash: náhrada mezer v názvech souborů podtržítkem
Díky za ten perl-rename skript.

A co se týče toho kousání, spousta lidí potřebuje předkousat - a to myslím ve všech významech tohoto slova... :-)
26.3.2016 10:42 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Bash: náhrada mezer v názvech souborů podtržítkem
spousta lidí potřebuje předkousat

Většinu to ovšem v celkem ranném věku přejde. Možná si myslíte, že smyslem poradny je dostat hotové řešení, které jen tupě zkopírujete a když budete chtít něco trošičku jiného, tak se bez sebemenší snahy to řešení pochopit a přizpůsobit prostě zeptáte znovu. Tak to ale fungovat nemá.

26.3.2016 15:26 pavele
Rozbalit Rozbalit vše Re: Bash: náhrada mezer v názvech souborů podtržítkem
Většinu to ovšem v celkem ranném věku přejde.
V raném věku přejde, v pozdním věku se vrátí. :-)

Nikdo nemá patent na rozum. I z hotového řešení se člověk může mnohému naučit.

Samozřejmě, existují takoví, kteří si myslí, že snědli kousek z hada moudrosti, například Neználek, Kutil Tim nebo Mat a Pat. Tito lidé ovšem velmi trpí při dešti.

26.3.2016 15:56 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Bash: náhrada mezer v názvech souborů podtržítkem
I z hotového řešení se člověk může mnohému naučit.

…a to je přesně to, co jste se rozhodl neudělat, místo toho jste se u velmi mírně odlišné úlohy zeptal znovu na hotové řešení. Právě na to můj komentář o kousání narážel - všimněte si, že jsem ho nepsal na první dotaz, ale až na ten druhý.

26.3.2016 14:57 dustin | skóre: 63 | blog: dustin
Rozbalit Rozbalit vše Re: Bash: náhrada mezer v názvech souborů podtržítkem

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.