タグ付けされた質問 「split」


6
ファイルを分割した後、再びファイルを結合する最良の方法は何ですか?
大きなファイルがあり、それを100メガバイトのチャンクに分割する必要がある場合は、 split -b 100m myImage.iso それは通常私に何かを与えます xaa xab xac xad そしてそれらを元に戻すために私は使用しています cat x* > myImage.iso ファイルのグループ内のコードの各行を読み取りcat、出力を新しいファイルにリダイレクトするよりも効率的な方法があるはずです。2つのファイルを開いEOFて、最初のファイルからマーカーを削除し、それらを接続する方法のように-すべてのコンテンツを確認する必要はありません。 Windows / DOSには、バイナリファイルのコピーコマンドがあります。ヘルプには、このコマンドが複数のファイルを結合できるように設計されていることが記載されています。次の構文で動作します:(/bバイナリモード用) copy /b file1 + file2 + file3 outputfile Linuxでcatよりも大きなファイルを結合するのに似た、またはより良い方法はありますか? 更新 cat実際には、ファイルを結合する正しい方法であり、最良の方法であると思われます。私がずっと正しいコマンドを使っていたことを知ってうれしい:)フィードバックをありがとう。


5
区切り文字の最初の出現による文字列の分割
次の形式の文字列があります id;some text here with possible ; inside の最初の出現によって2つの文字列に分割したい;。だから、それは次のようになりますidし、some text here with possible ; inside 文字列を分割する方法は知っていますが(たとえば、cut -d ';' -f1)、;左部分の内側にあるため、より多くの部分に分割されます。

3
ファイルを行ごとに分割し、結果のファイル拡張子を制御する
ファイル分割の標準コマンド-splitがあります。 たとえば、単語ファイルを10000行の複数のチャンクに分割する場合、次を使用できます。 split -dl 10000 words wrd そして、wrd.01、wrd.02などの形式の複数のファイルを生成します。 しかし、これらのファイルには特定の拡張子が必要です。たとえば、wtd.01.txt、wrd.02.txtファイルを取得したいです。 それを行う方法はありますか?
28 shell  filenames  split 


4
ファイルを2つに分割する
大きなファイルがあり、2つのファイルに分割する必要があります。最初のファイルで1000行を選択して別のファイルに入れ、最初のファイルのそれらの行を削除するとします。 使用してみsplitましたが、複数のチャンクを作成しています。


3
正規表現に基づいてテキストファイルを分割する
Yi Jingの64ヘキサグラムによると、64個の不均等な部分に分割したいテキストファイルがあります。各ヘキサグラムのパッセージは、数字、ピリオド、および2つの改行で始まるため、正規表現は非常に簡単に記述できます。 しかし、この正規表現に従って実際にテキストファイルを64個の新しいファイルに分割するにはどうすればよいですか?のタスクのようですperl。しかし、おそらく、私がまったく見逃しているもっと明白な方法があるかもしれません。



5
キーワード境界を使用してファイルを分割する方法
多数のvcardを含むvcfファイルがあります。 Outlookにvcfファイルをインポートすると、最初のvcardのみがインポートされるようです。 したがって、それらを分割したいと思います。 vcardが次で始まることを考えると BEGIN:VCARD で終わる END:VCARD 各vcardを独自のファイルに分割する最良の方法は何ですか。 ありがとう 更新 すべての回答をありがとう。この性質の質問と同様に、猫の皮を剥ぐさまざまな方法があります。ここに私がやったものを選んだ理由があります。 切り上げする 以下に、各回答で気に入ったものと、そのうちの1つを選択するきっかけをまとめました。 csplit:この方法の簡潔さが本当に好きでした。ファイル拡張子も設定できるようになりました。 gawk:それは私がそれを求めたすべてをした。 paralell:働いた。しかし、新しいものをインストールする必要がありました。(また、私のホームディレクトリに新しい/ binディレクトリを作成することにしました) perl:連絡先の名前に基づいてvcfを作成したことが気に入った。しかし、-oオプションは実際には機能しませんでした 結論 最初に行ったのperlは、少し壊れていたからです 次はparalell、新しいものをインストールしなければならなかったからです 次はcsplit、私が見る限り、出力ファイルに拡張子を作成できないためです そのため、賞はgawkに贈られます。これは、すぐに利用でき、ファイル名を少し変更して変更できるほど十分に汎用性のあるユーティリティであるためです。ボーナスマークcmpも:)
14 files  split 

4
ファイルからデータを抽出し、1つの列値に基づいて異なるファイルに配置します
以下の値でcsvファイルを生成します yp1234,577,1,3 yp5678,577,3,5 yp9012,132,8,9 データを抽出し、2番目の列に基づいてファイルを作成する必要があります。577の場合、行全体を抽出して別のファイルに配置する必要があります。つまり、2番目の列が577だけの行と、2番目の列が132だけの別のファイルが必要です。 IFを使用しようとしましたが、動作しませんでした
13 csv  split 

3
ファイルを複数の小さなファイルに分割し、改行記号で区切ります
ファイルを改行記号で分割するユーティリティはありますか?たとえば、ファイルに次の行が含まれている場合、 aa bbb cccc 3つのファイルに分割する場合、目的の出力は次のようになります。 aa、bbbおよびcccc(3つの異なるファイルで) 私はすでにsplitコマンドをチェックしました、それはファイルサイズでファイルをカットするだけで、私が望むものではありません。 自分でユーティリティを書いていない場合、使用する標準ツールはありますか?

9
stdinを並列プロセスに拡散する
stdin上のファイルのリストを処理するタスクがあります。プログラムの起動時間はかなり長く、各ファイルにかかる時間は大きく異なります。これらのプロセスを相当数生成し、ビジーでないプロセスに作業をディスパッチします。私が望んでいることをほとんど実行するいくつかの異なるコマンドラインツールがありますが、私はそれを2つのほぼ機能するオプションに絞り込みました: find . -type f | split -n r/24 -u --filter="myjob" find . -type f | parallel --pipe -u -l 1 myjob 問題はsplit、純粋なラウンドロビンを実行するため、プロセスの1つが遅れて残り、操作全体の完了が遅れることです。一方parallel、入力のN行またはバイトごとに1つのプロセスを生成したいので、起動時のオーバーヘッドに多くの時間を費やすことになります。 プロセスを再利用し、標準化されていない標準化されたプロセスにフィードラインを供給するこのようなものはありますか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.