コマンドをless
にパイプ処理したので、コマンドの出力をファイルに保存します。それ、どうやったら出来るの?
この場合、tee
を使用したくありません。lessから直接ソリューションを取得したいので、tee
を使用するのを忘れた場合に、長時間実行されているコマンドを再実行する必要はありません。
この質問はこれと似ていますが、唯一の違いはサブセットではなくすべての行を保存することです lessからファイルに行を書き込む
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。
これは、入力がパイプでも通常のファイルでも機能します。
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
で開かれると思います。