2012-07-25 14 views
6

Chcę znaleźć katalog przy użyciu grep, a następnie zmienić bieżący katalog na wynikowy katalog. Na przykład:Jak "cd" do katalogu po "grep"?

$ ls | grep 1670 | 

wyszukuje mi katalogów haib12CJS1670. Próbuję zrobić coś jak poniżej:

$ ls | grep 1670 | cd 

tak, że mój katalog jest ustawiony na haib12CJS1670 w jednym kroku. Oczywiście moja droga nie działa. Jakieś sugestie? Dziękuję

+4

Czy masz dobry powód, aby używać 'grep' zamiast globbing (czyli' cd * 1670 * '?) – geoffspear

+0

To świetny komentarz do mnie, odkąd nawet nie wiedziałem, że mogę to zrobić. – Supertech

Odpowiedz

8
cd `ls | grep 1670` 

powinien otrzymać cd do pracy (uwaga, to są "back-kleszcze")

Alternatywnym podejściem (niektórzy powiedzieliby preferowane) byłoby użyć podstawienie $. Np

cd $(ls | grep 1670) 

choć nie mogę uzyskać to do pracy z tcsh, współpracuje z bash.

Pierwsze rozwiązanie jest shell-agnostyk :)

+0

Wow, jesteś * szybki jak błyskawica * Lewon. Dziękuję Ci! – Supertech