web-dev-qa-db-ja.com

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

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

この場合、teeを使用したくありません。lessから直接ソリューションを取得したいので、teeを使用するのを忘れた場合に、長時間実行されているコマンドを再実行する必要はありません。

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

81
Flimm

lessから、次のように入力します s 次に、保存先のファイル名を入力し、 Enter
manページのCOMMANDSの下:

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 > filenameおよび Enter
これは、入力がパイプでも通常のファイルでも機能します。

111
don_crissti

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で開かれると思います。

0
nehcsivart