2016-09-07 11 views
0

異なるサーバにある巨大なファイルの最初のn行を読みたい。私は、ファイルをコピーするためにscpコマンドを使用していた。リモートサーバから巨大ファイルの最初のn行をbashコマンドで読み取る

sshpass -p $password scp [email protected]$server:$path_to_file "$content_file" 

をしかし、私はファイルの最初の数行をしたいです。ファイルが巨大であれば、最初にファイル全体をダウンロードしてから、headコマンドを使って最初のn行を読み込みます。私はscpheadを置き換えてみましたが、それは私を助けませんでした。正しい方法を提案してください。

+0

このファイルはvia経由でのみ公開されていますか。 ssh? –

答えて

3

次のコマンドを使用して、リモート結果をローカルに出力できます。

または次のコマンドを使用してローカル出力をリモートに出力します。

ssh hostA 'head > destfile' < srcfile 
0

これはハックの一種です。しかし、あなたはSCPユーティリティに限られているし、ローカルホストがUnixライクであれば、あなたがこれを行うことができます:

scp [email protected]:/some/file /dev/stdout | head > destfile 

をこれは、SCPの標準出力にそれを書いて、リモートファイルのダウンロードを開始するscpの原因となります。その出力をheadまたはファイルの内容を処理する別のユーティリティにパイプすることができます。

関連する問題