lessからすべての行をファイルに書き込むにはどうすればよいですか?


76

コマンドをlessにパイプし、コマンドの出力をファイルに保存します。それ、どうやったら出来るの?

この場合、私は使用したくない、私はteeより少ないから直接解決策が欲しいので、使用するのを忘れた場合に長時間実行するコマンドを再実行する必要はありませんtee

この質問はこれに似ていますが、唯一の違いは、サブセットではなくすべての行を保存することです:lessから行をファイルに書き込む

回答:


106

からless、入力sして、保存するファイル名を入力し、次にを入力しますEnter。ページ
から:manCOMMANDS

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

manまた、特定のインストールによっては、sコマンドが使用できない場合があることも記載されています。その場合、次のようにして1行目に移動できます。

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

コンテンツ全体を次のようにパイプcatします。

| <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.

どちらか:

g|$cat > filename

または:

<|$cat > filename

すなわち、タイプg又は<Gまたは小なり| $パイプ次いでドル)をcat > filenameEnter
これは、入力がパイプでも通常のファイルでも機能します。


0

なしteeでそれを行う1つの方法は次のとおりです。既に存在する場合、
less /path/to/input > /path/to/output
上記は上書きされます/path/to/output

同じことをしますが、追加先/path/to/outputは次のとおりです。
less /path/to/input >> /path/to/output

テキストlessを開いた後に保存するには、ファイルの保存機能を使用できます。
になったら、lessを押しsます。次に、ファイル名を入力します。
パイプを使用した場合、ファイルは作業ディレクトリに自動的に書き込まれます。
パイプを使用しなかった場合は、テキスト(保存可能なテキスト)を含むファイルを開きます。
ファイルはで開くと思いますvim


4
less既に開いてから解決策が欲しいless
Flimm 14

そうですか。誤解して申し訳ありません。回答を更新しました。
nehcsivart 14

-2

あまり使用せず、ティーを使用してからティーを少なくします。

./program | tee program.out | less


5
質問では、tee一度lessも開かれていない状態で機能するソリューションを具体的に求めました。
Flimm
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.