Czy istnieje sposób na pozostawienie tylko tych ciągów, które spełniają niektóre (potencjalnie dowolne) warunki? Filtrowanie ciągów na podstawie tego, że same pasują do jakiegoś wzorca (z grep) jest banalne. Ale co, jeśli mam listę nazw plików i chcę zostawić tylko te, które są katalogami? Co się stanie, jeśli mam listę adresów URL i chcę zostawić tylko te, które nie zwracają 404, gdy je zapamiętuję? I tak dalej. Czy tego rodzaju logikę można uogólnić za pomocą bash?
Przykład:
$ echo $LIST
/home/me/a
/home/me/b
/home/me/b/some.jpg
$ echo $LIST | ${//%(!$SOME_FANCY_BASH_FILTERING_LOGIC_TO_CHECK_IF_THIS_IS_A_DIRECTORY&%^#}
/home/me/a
/home/me/b