[解決済み] ファイルを分割する方法。重複
2022-10-09 20:18:19
質問
ファイルを等分に分割することが可能かどうか、疑問に思っていました( を編集します。 = 最後を除いてすべて等しい)、行を分割することなくできますか?Unixのsplitコマンドを使用すると、行を半分に分割することができます。例えば、1つのファイルを5等分して、それでも全行で構成されるようにする方法はありますか(1つのファイルが多少大きくても小さくても問題ありません)?行数を計算すればいいのは分かっているのですが、bashスクリプトで多くのファイルについてこれをしなければなりません。多くの感謝!
どのように解決するのですか?
もし、同じ数の
行です。
split
には、このためのオプションがあります。
split --lines=75
もし、その
75
が本当にそうであるべきなのか
N
を等分にする必要があります。
lines_per_part = int(total_lines + N - 1) / N
ここで、総行数は
wc -l
.
例として以下のスクリプトをご覧ください。
#!/usr/bin/bash
# Configuration stuff
fspec=qq.c
num_files=6
# Work out lines per file.
total_lines=$(wc -l <${fspec})
((lines_per_file = (total_lines + num_files - 1) / num_files))
# Split the actual file, maintaining lines.
split --lines=${lines_per_file} ${fspec} xyzzy.
# Debug information
echo "Total lines = ${total_lines}"
echo "Lines per file = ${lines_per_file}"
wc -l xyzzy.*
これは出力されます。
Total lines = 70
Lines per file = 12
12 xyzzy.aa
12 xyzzy.ab
12 xyzzy.ac
12 xyzzy.ad
12 xyzzy.ae
10 xyzzy.af
70 total
より新しいバージョンの
split
の数を指定することができるようになりました。
CHUNKS
と共に
-n/--number
というオプションがあります。したがって、次のような使い方ができます。
split --number=l/6 ${fspec} xyzzy.
(それは
ell-slash-six
という意味で
lines
ではなく
one-slash-six
).
これで、サイズ的にほぼ同じファイルができ、中途半端な行の分割もなくなります。
最後のポイントについて言及するのは、これでは、ほぼ同じ数の 行 が同じ数になるわけではなく、もっと同じ数の 文字です。
つまり、20文字1行と1文字19行(合計20行)で、5つのファイルに分割した場合、最も可能性が高いのは にはならないでしょう。 ということになります。
関連
-
[解決済み] リストを均等な大きさの塊に分割するには?
-
[解決済み] テキストファイルから、特定の文字列を含むすべての行を削除するにはどうすればよいですか?
-
[解決済み] Bashで文字列を配列に分割する方法は?
-
[解決済み] ファイルの行の順番を逆にするにはどうすればよいですか?
-
[解決済み] シェルでファイルを変数に読み込むには?
-
[解決済み] 大きなテキストファイルを、同じ行数の小さなファイルに分割するにはどうすればよいですか?
-
[解決済み] 文字列をリストに分割するには?
-
[解決済み] 複数行のファイル名をカスタムデリミターで1つに結合する方法は?
-
[解決済み] emacsの分割画面の大きさを変えるには?
-
[解決済み] シェルスクリプトで文字列が空でもスペースでもないことをチェックする
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 大きなテキストファイルを、同じ行数の小さなファイルに分割するにはどうすればよいですか?
-
[解決済み] bash に次の行に進むように指示する方法
-
[解決済み] set -u` による Bash による空の配列展開
-
[解決済み] find "の結果をカウントするのに最適な方法は何ですか?
-
[解決済み] Bashはどのように異なるディレクトリコンテキストでコマンドを実行できますか?
-
[解決済み] Docker: 実行中のDockerコンテナの停止と削除
-
[解決済み] Bashでディレクトリではなく、ファイルだけをリストアップする方法は?
-
[解決済み] Bashでファイル名を一括変更する
-
[解決済み] bashでHMAC-SHA1
-
[解決済み] Bashのバックチックに相当するバッチ