GNU/Linux >> Znalost Linux >  >> Linux

Přejmenování souborů v linuxu pomocí regulárního výrazu

Řešení 1:

Psal jsem k tomu perl skripty, dokud jsem neobjevil příkaz rename.

K přejmenování přijímá regulární výraz perl:

za tímto účelem jsem právě napsal dva příkazy:

rename 's/(\w+)-(\w+)-(\d\d)-(\d{4})-NODATA.txt\$1.$4$3$2.log$//' *
rename 'y/A-Z/a-z/' *.log

U některých distribucí však rename tuto funkci nemá (viz jeho manuálová stránka) a možná budete muset nainstalovat perl-rename nebo prename .

Řešení 2:

mmv je standardní linuxový nástroj pro přesun/přejmenování více souborů. Je k dispozici z repozitářů pro většinu distribucí. Pro váš příklad výše můžete udělat:

mmv '*-Log-*-*-*-NODATA.txt' '#l1.#4#3#2.log'

Pro více informací si přečtěte tento debaday článek nebo manuálovou stránku.

Řešení 3:

Protože nemám příkaz pro přejmenování, spoléhám na toto:

for myfile in /my/folder/*; do
    target=$(echo $myfile|sed -e 's/foo/bar/g')
    mv "$myfile" "$target"
done

Řešení 4:

rename util není příliš "standardní". Každá distribuce se dodává s jiným rename nástroj. Například zde na Gentoo, rename je z sys-apps/util-linux balíček a nepodporuje regulární výraz.

Hamish Downer doporučeno mmv , vypadá to užitečné, speciálně pro použití uvnitř skriptů.

Na druhou stranu, pro obecný případ můžete chtít renameutils. Má qmv a qcp příkazy, které otevře textový editor dle vašeho výběru (moje preference:Vim) a umožní vám tam upravit cílové názvy souborů. Po uložení a zavření editoru qmv /qcp provede veškeré přejmenování.

Oba mmv a qmv jsou dostatečně chytré na to, aby přejmenovávaly soubory ve správném pořadí a také detekovaly cyklické přejmenování, a v případě potřeby automaticky vytvoří dočasný soubor.


Linux
  1. Jak přejmenovat soubory v Linuxu

  2. Přejmenování mnoha souborů v Linuxu podle vzoru

  3. Existuje linuxový příkaz jako mv, ale s regulárním výrazem?

  1. Jak šifrovat soubory pomocí gocryptfs na Linuxu

  2. Přejmenování souborů tak, aby měly přípony malými písmeny pomocí „přejmenovat“?

  3. Soubory mizí na linuxovém serveru

  1. Metamorphose 2 – Dávkové přejmenování souborů a složek v systému Linux

  2. Práce se soubory ZIP v Linuxu

  3. Linux přejmenovává soubory na velká písmena