GNU/Linux >> Znalost Linux >  >> Linux

Hledat soubory, jejichž cesty obsahují několik slov bez konkrétního pořadí mezi nimi?

Chtěl bych vyhledat všechny soubory, jejichž cesty obsahují několik slov (word1 , word2 ), bez jakéhokoli konkrétního pořadí mezi nimi.
Příklady shodných souborů jsou:

word1bar/fooword2/myfile
fooword2/word1bar/myfile
fooword2/bar/word1myfile

Jaký příkaz může vyřešit úlohu?

Hádám, že nějaký příkaz jako tento bude fungovat:

find . -regex regexpattern

Děkuji.

Moje řešení s locate je Zlepšit vyhledávání souborů podle názvů pomocí kanálu locate a grep

Přijatá odpověď:

Je těžké to udělat s jedním vzorem (regex nebo shell), ale od find může trvat více podmínek, můžeme použít

find . -type f -path "*word1*" -path "*word2*" ...

V regulárním výrazu byste museli zadat všechny různé permutace slov, například .*word1.*word2.*|.*word2.*word1.* (pouze ERE nebo Perl RE), a to rychle vybuchne, pokud chcete najít více než dvě slova.


Linux
  1. Hledat textové soubory, kde existují dvě různá slova (jakékoli pořadí, libovolný řádek)?

  2. Jak hledat soubory podle velikosti a přípony?

  3. Jak vyhledávat v konkrétních souborech odpovídajících vzoru?

  1. Použijte Najít a najít k vyhledání souborů v Linuxu

  2. Najděte soubory vytvořené v určitém časovém období

  3. Najít rozhraní pro cestu ke konkrétnímu hostiteli

  1. Grep pro více řetězců v souborech a pak seznam souborů v pořadí velikosti?

  2. Jak používat Gui k hledání souborů v Gnome?

  3. Jak hledat soubory pomocí regulárního výrazu ve skriptu linuxového shellu