GNU/Linux >> Linux の 問題 >  >> Linux

コマンドにパイピングするためにSplittoStdoutのようにファイルを分割する方法は?

大きな.sqlがあります SELECTでいっぱいのファイル SQLServerデータベースに挿入したいデータを含むステートメント。基本的に、ファイルの内容を一度に100行取得して、残りを実行するために設定したコマンドに渡す方法を探しています。

基本的に、私はsplitを探しています stdoutに出力されます 、ファイルではありません。

また、WindowsでCygWinを使用しているため、ツールの完全なスイートにアクセスできません。

承認された回答:

これを行う最も簡単な方法は次のとおりです。

while IFS= read -r line; do
  { printf '%sn' "$line"; head -n 99; } |
  other_commands
done <database_file

readを使用する必要があります ファイルの終わりに達したときに停止する他の方法がないように見えるため、各セクションの最初の行。詳細については、以下を参照してください:

  • パイプが空かどうかを確認し、空でない場合はデータに対してコマンドを実行します
  • あるプロセスから別のプロセスに出力をパイプするが、最初のプロセスに出力がある場合にのみ実行するにはどうすればよいですか?

Linux
  1. Linuxでコマンド出力をファイルに保存する方法

  2. ファイルの部分チェックサムを生成する方法

  3. コマンドライン引数のような名前のファイルを作成するには?

  1. 安全なファイル転送のためにSFTPコマンドを使用する方法

  2. Linuxでコマンドラインからファイルを分割して結合する方法

  3. コマンドの標準をT秒間破棄しますか?

  1. ファイルのサブセットをランダムにサンプリングする方法は?

  2. Linux で「split」コマンドを使用して iso またはファイルを分割する方法

  3. 出力をファイルに追加する方法は?