[解決済み] 大きなテキストファイルを、同じ行数の小さなファイルに分割するにはどうすればよいですか?
2022-03-16 07:28:44
質問
大きな(行数の)プレーンテキストファイルがあり、それを行数ごとに小さなファイルに分割したい。 例えば、2M行のファイルであれば、200k行を含む10個のファイル、または20k行を含む100個のファイル(さらに残りを1個のファイルに分割したいのですが、均等に分割できるかは問題ではありません)に分割したいのです。
私はPythonでかなり簡単にこれを行うことができましたが、私はBashとUnixユーティリティを使用してこれを行うための忍者のような方法があるかどうか疑問に思っています(手動でループとカウント/行の分割とは対照的に)。
どのように解決するのですか?
splitコマンドをご覧ください。
$ split --help
Usage: split [OPTION] [INPUT [PREFIX]]
Output fixed-size pieces of INPUT to PREFIXaa, PREFIXab, ...; default
size is 1000 lines, and default PREFIX is `x'. With no INPUT, or when INPUT
is -, read standard input.
Mandatory arguments to long options are mandatory for short options too.
-a, --suffix-length=N use suffixes of length N (default 2)
-b, --bytes=SIZE put SIZE bytes per output file
-C, --line-bytes=SIZE put at most SIZE bytes of lines per output file
-d, --numeric-suffixes use numeric suffixes instead of alphabetic
-l, --lines=NUMBER put NUMBER lines per output file
--verbose print a diagnostic to standard error just
before each output file is opened
--help display this help and exit
--version output version information and exit
こんな感じでいいんじゃないでしょうか。
split -l 200000 filename
という名前の200000行のファイルが作成されます。
xaa xab xac
...
もう一つのオプションは、出力ファイルのサイズによって分割するものです(やはり改行で分割します)。
split -C 20m --numeric-suffixes input_filename output_prefix
のようなファイルを作成します。
output_prefix01 output_prefix02 output_prefix03 ...
は、それぞれ最大20メガバイトの大きさです。
関連
-
[解決済み] テスト
-
[解決済み] '\r': command not found - .bashrc / .bash_profile [duplicate].
-
[解決済み] AWS CLIのプロファイルを一時的に切り替えるには?
-
[解決済み] ファイルのコピー方法について教えてください。
-
[解決済み] あるディレクトリにあるすべてのコード行を再帰的にカウントするにはどうすればよいですか?
-
[解決済み] Bashで標準出力と標準エラーの両方をファイルにリダイレクトして追記する方法
-
[解決済み] なぜテキストファイルは改行で終わらなければならないのですか?
-
[解決済み] Pythonでファイルサイズを確認するには?
-
[解決済み] Bashで文字列を配列に分割する方法は?
-
[解決済み] ファイルの行の順番を逆にするにはどうすればよいですか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] テスト
-
[解決済み] 値がベースに対して大きすぎる(エラートークンは "08")[重複]
-
[解決済み] systemd サービス 203/EXEC の失敗 (そのようなファイルやディレクトリがない) を修正する。
-
[解決済み] Bashスクリプトで引数を反復処理する方法
-
[解決済み] プロジェクトからすべての .pyc ファイルを削除するにはどうすればよいですか?
-
[解決済み] grepの出力に含まれる重複を削除する
-
解決策:bash: /root/.bashrc: パーミッションが拒否されました
-
[解決済み] AWS CLIのプロファイルを一時的に切り替えるには?
-
[解決済み] ターミナルでbashスクリプトを実行するにはどうすればよいですか?
-
[解決済み] 2GB程度のテキストファイルを読むにはどうしたらよいですか?[重複しています]