Pokouším se vytvořit příkazový řetězec find, který najde všechny soubory, které končí číslem 1-99, ale vylučují všechny ostatní .

např Chci najít myfile1 myfile99 , ale ne myfile456 a ne myfilebackup

Regex, na který myslím, je myfile[1-9]{1,2} ale nemohu s tím najít práci.

find . -regex ".*myfile[0-9]{1,2}" NEBO find . -iname "myfile[0-9]{1,2}"

Z toho, co vidím, je část {1,2}, která nefunguje.

(mimochodem můžete použít -name -regex zaměnitelně?)

Oceníte jakoukoli pomoc.

Komentáře

  • -iname (a -name) použít glob , které ano tuto syntaxi nemají.

Odpověď

Můžete zkusit

find . -regex ".*myfile[0-9][0-9]?" 

nebo

find . \( -name "myfile[0-9][0-9]" -o -name "myfile[0-9]" \) 

Komentáře

  • Děkuji – první řádek je pracovat ng pro mě. Zkoušel jsem to s -iname, ale ' si nemyslím, že to podporuje syntaxi, nebo jinak ' dělám něco špatně.

Odpověď

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *