Jak zapisać wszystkie wiersze od mniej do pliku?


76

Pipedowałem polecenie do less, a teraz chcę zapisać wynik polecenia w pliku. W jaki sposób mogę to zrobić?

W tym przypadku nie chcę używać tee, chcę rozwiązanie bezpośrednio od mniej, aby nie musiałem ponownie uruchamiać długo działającego polecenia, jeśli zapomniałem go użyć tee.

To pytanie jest podobne do tego, jedyną różnicą jest to, że chcę zapisać wszystkie linie, a nie podzbiór: Zapisz linie do pliku z mniej

Odpowiedzi:


106

Od less, sa następnie wpisz nazwę pliku, w którym chcesz zapisać Enter.
Ze manstrony poniżej COMMANDS:

s filename
      Save the input to a file.  This only works if the input is a pipe, not an ordinary file.

manstrona stwierdza również, że w zależności od konkretnej instalacji spolecenie może być niedostępne. W takim przypadku możesz przejść do wiersza 1 za pomocą:

g or < or ESC-<
      Go to line N in the file, default 1 (beginning of file).

i potokuj całą zawartość za catpomocą:

| <m> shell-command
      <m> represents any mark letter. Pipes a section of the input file to the
      given shell command. The section of the file to be piped is between the
      first line on the current screen and the position marked by the letter. 
      <m> may also be ^ or $ to indicate beginning or end of file respectively.

więc albo:

g|$cat > filename

lub:

<|$cat > filename

tj typu glub <( g lub mniej niż ) | $( rura potem dolara ), a następnie cat > filenamei Enter.
Powinno to działać niezależnie od tego, czy dane wejściowe są potokiem, czy zwykłym plikiem.


0

Jednym ze sposobów na zrobienie tego bez teejest:
less /path/to/input > /path/to/output
Powyższe zastąpi, /path/to/outputjeśli już istnieje.

Aby zrobić to samo, ale dołącz do /path/to/outputjest następujący.
less /path/to/input >> /path/to/output

Aby zapisać tekst lesspo jego otwarciu, możesz użyć funkcji Zapisz plik.
Po lesswejściu naciśnij s. Następnie wpisz nazwę pliku.
Jeśli użyłeś potoku, plik zostanie automatycznie zapisany w katalogu roboczym.
Jeśli nie używałeś potoku, otworzysz plik z tekstem (dla którego możesz zapisać).
Wierzę, że plik zostanie otwarty vim.


4
Chcę rozwiązania od lessrazu po otwarciu less.
Flimm,

Widzę. Przepraszam za nieporozumienie. Zaktualizowałem swoją odpowiedź.
nehcsivart

-2

Nie używasz mniej, używasz trójnika, a następnie fajki do mniej.

./program | tee program.out | less


5
W pytaniu konkretnie poprosiłem o rozwiązanie, które zadziałało, choć teeraz lessjuż zostało otwarte.
Flimm,
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.