`man bash | grep ulimit` nic nie zwraca

0

Wiem, że wbudowane polecenie ulimitjest wymienione na bashstronie man.

Grepping za to niczego nie zwraca. Dlaczego?

grepi manoba działają dobrze, man bash | grep stringszwraca kilka pasujących wierszy.

Podejrzewam, że ma to związek z pogrubionym tekstem lub podobnym, ale nie mogę znaleźć odpowiedzi. Zmienna środowiskowa LANG=en_US.UTF-8.

(Próbuję tego na najnowszym systemie Mac OS X Snow Leopard z Terminal.app , jeśli to ważne. Moja interaktywna powłoka to Zsh .)

EDYCJA: GNU grep 2.5.1, man 1.6c.

Chris Poole
źródło
1
MAN to aplikacja. Otwiera podręcznik i wyświetla go. Możesz wyszukiwać za jego pomocą, istnieją też inne funkcje. W każdym razie, wyświetla NIE wyjście ... dlatego nic nie dostajesz, gdy próbujesz go grepować. * To byłaby odpowiedź, jeśli znajdę moje konto na serwerze, aby przetestować ... :))) *
Shiki
@Shiki: Ale to nie wyjście wyświetlania. Jest on po prostu zapisywany w potoku, który wyprowadza dane przez $ PAGER, jeśli użytkownik nie przekieruje go gdzie indziej (jeśli stdout jest tty, pod względem technicznym). Na przykład man ... | catdziała.
grawity

Odpowiedzi:

2

Nie mam twojego środowiska, więc nie mogę przetestować. Aby obejść ten problem, możesz przesłać dane wyjściowe do pliku i zamiast tego przeszukać grep

man bash | col -bx > /tmp/bash.man
grep ulimit /tmp/bash.man
Fredrik Pihl
źródło
Dzięki. To działa, ale nie wyjaśnia, dlaczego grep nie może dopasować pogrubionego tekstu na stronie man. Oczywiście man bash | col -bx | grep ulimitteraz działa również ładnie, po sformatowaniu z col.
Chris Poole
1
W rzeczywistości tak jest, jeśli pomyślisz o tym, co właściwie robi -bopcja colw odpowiedzi na sekwencje wejściowe, takie jak u^Hul^Hli^Him^Hmi^Hit^Ht.
JdeBP
Tak, masz rację. Wielkie dzięki! Skończyło się przy użyciu przykład napisać trochę funkcję: help () { 3=${3:-'0'}; man $1 | col -bx | grep -A$3 $2 | more }.
Chris Poole
@Chris: ... próbowałeś wbudowanego polecenia help ulimit?
grawity
1
@grawity Myślę, że helpto tylko bash; Używam zsh interaktywnie, który nie ma wbudowanegohelp .
Chris Poole
2

Nie mam komputera Mac, ale w systemie Ubuntu strona podręcznika jest wyświetlana przez lessprogram.

Aby wyszukać na stronie podręcznika, naciśnij, /a następnie wyszukiwane hasło ( ulimit). W powłoce bash możesz biegać, help ulimitaby uzyskać pomoc ulimit.

Nie wiem, dlaczego grepnie filtrujesz ulimit. ulimitjest pogrubiony na stronie podręcznika, być może ma to coś wspólnego z tym. Niektóre sekwencje specjalne są ukryte, ale mają wpływ: zmieniają kolor (tło) lub wygląd (podkreślone, pogrubione).

Z mojego bash(wersja 4.2.8):

ulimit: ulimit [-SHacdefilmnpqrstuvx] [limit]
  Modify shell resource limits.

  Provides control over the resources available to the shell and processes
  it creates, on systems that allow such control.

  Options:
    -S        use the `soft' resource limit
    -H        use the `hard' resource limit
    -a        all current limits are reported
    -b        the socket buffer size
    -c        the maximum size of core files created
    -d        the maximum size of a process's data segment
    -e        the maximum scheduling priority (`nice')
    -f        the maximum size of files written by the shell and its children
    -i        the maximum number of pending signals
    -l        the maximum size a process may lock into memory
    -m        the maximum resident set size
    -n        the maximum number of open file descriptors
    -p        the pipe buffer size
    -q        the maximum number of bytes in POSIX message queues
    -r        the maximum real-time scheduling priority
    -s        the maximum stack size
    -t        the maximum amount of cpu time in seconds
    -u        the maximum number of user processes
    -v        the size of virtual memory
    -x        the maximum number of file locks

  If LIMIT is given, it is the new value of the specified resource; the
  special LIMIT values `soft', `hard', and `unlimited' stand for the
  current soft limit, the current hard limit, and no limit, respectively.
  Otherwise, the current value of the specified resource is printed.  If
  no option is given, then -f is assumed.

  Values are in 1024-byte increments, except for -t, which is in seconds,
  -p, which is in increments of 512 bytes, and -u, which is an unscaled
  number of processes.

  Exit Status:
  Returns success unless an invalid option is supplied or an error occurs.
Lekensteyn
źródło
1
Nie zdawałem sobie sprawy, że człowiek jest przepuszczany przez pager jak mniej. Wydaje się, że tak samo jest na Macu: pisanie /podczas przeglądania strony podręcznika pozwala mi ulimitszybko znaleźć . Nie miałem pojęcia, że ​​możesz to zrobić! Dzięki. Przeciągnięcie strony podręcznej przez col -bxpaski wystarczające, aby grep mógł również znaleźć tekst.
Chris Poole