Jak mogę zapisać bieżącą zawartość less do pliku?


91

Jeśli przesłałem wyniki polecenia do potoku, lessa następnie zdecydowałem, że chcę zapisać zawartość do pliku, czy jest to możliwe?

Próbowałem ustawić znak ana końcu bufora, a następnie wróciłem na górę i |aviwysłałem całą zawartość vi, ale to nie działa.


1
Twoja oryginalna technika działałaby, gdybyś polecił vi ładowanie ze standardowego wejścia, wykonując |avi -.
Joe Shaw,

Odpowiedzi:


102

W moim systemie man lessmówi

       s nazwa pliku
              Zapisz dane wejściowe w pliku. Działa to tylko wtedy, gdy wejście to
              potok, a nie zwykły plik.

Pracuje dla mnie!


4
Jakoś mi to nie działa - pisanie „przesuwa okno o jedną linię”. Jestem na komputerze Mac.
benroth

2
@benroth: Prawdopodobnie masz lesskeyplik, który zmienia normalne polecenia. Zobaczman lesskey
RedGrittyBrick

8
sdla mnie też nie działa, ale -o filedziała.
user1338062,

1
I dlaczego, do cholery, nie jest to wspomniane, gdy wpisuję „h”, aby uzyskać interaktywną pomoc? +1, jeśli przeczytałeś interaktywną pomoc i dlatego nie pomyślałeś, aby skonsultować man less...
Peter V. Mørch,

1
@comfreak: Tak, jest mniej niż 487 w Ubuntu 18.04, ale nie mniej niż 481 w Debian 9 / stretch / stable
Peter V. Mørch

24

Akceptowana odpowiedź nie działa na komputerze Mac - jak mówi @benroth, naciśnięcie sprzesuwa się w dół linii - ale możesz użyć innej metody.

W less --help:

|Xcommand            Pipe file between current pos & mark X to shell command.

i

A mark is any upper-case or lower-case letter.
Certain marks are predefined:
     ^  means  beginning of the file
     $  means  end of the file

Więc jeśli przejdziesz na górę bufora ( <), a następnie:

|$cat > /tmp/foo.txt

zawartość bufora zostanie zapisana do /tmp/foo.txt.


Ta metoda może być szczególnie przydatna, gdy chcesz potokować bieżący bufor oglądany za pomocą innego polecenia.
Doron Behar,

3

Po lessotwarciu możesz zapisać pełne dane wyjściowe w pliku. Podobnie jak vimmniej obsługuje polecenia.

Wystarczy wpisać klucz s, a następnie lesspoprosi o nazwę pliku, w którym chcesz zapisać zawartość, po prostu wpisz nazwę pliku, a następnie wpisz Enter.

Twoje zdrowie


0

Użyj >operatora. Na przykład: less foo.bar > output.txt.


Dzięki @Dror, ale jestem już w mniejszej aplikacji, już nie po bashu
Jonathan Day

Cenny wkład w Q / A. Zamiast rozpocząć zupełnie osobne pytanie, ludzie potrzebujący metody skryptu do wielu plików za pomocą Less Viewer mogą wiele skorzystać. Zaoszczędziłem godziny pracy (po wielu poszukiwaniach). Dzięki!
LD James

0

Nie, jeśli zacząłeś mniej, ale jeśli wiesz, że chcesz wysłać go do mniej i pliku, możesz użyć polecenia tee

command | tee out_file | less

Dzięki, Mark, ale szczególnie szukam, jak to zrobić, jeśli mam już mniej
Jonathan Day

0

Moja odpowiedź przychodzi odrobinę za późno. Ale tylko w celach informacyjnych, w odpowiedzi na powyższe obawy Benrotha: Dla użytkowników OSX zawsze istnieje możliwość zrzucenia zawartości pagera do pliku dziennika za pomocą opcji „-l” (czytaj DASH ELL ) w wierszu dwukropka.

Pager poprosi o plik dziennika. Wpisz go i naciśnij [CR]

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.