大きいサイズのファイルの扱い方 UNIX AIX

このQ&Aのポイント
  • UNIX(AIX)環境での大きいサイズのファイルの扱いについての質問です。
  • viで大きいサイズ(500MBくらい)のテキストファイルを開くことができません。
  • 大きいサイズのファイルを分割する方法や、wcコマンドとheadコマンドのエラーについても説明してください。
回答を見る
  • ベストアンサー

大きいサイズのファイルの扱い方 UNIX AIX

お世話になります。 UNIX(AIX)環境での大きいサイズのファイルの扱いについての質問です。 viで大きいサイズ(500MBくらい)のテキストファイルを 開きたいのですが、マシンのメモリ不足で開くことができません。 このような大きいサイズのファイルを 大雑把にわけたい(3等分とか、5等分とか)のですが どのような方法があるか?教えてください。 (マシンの性能を上げる!という解答以外でおねがいします。) wcコマンドで全体の行数を調べようとしても、エラーが帰ってきてしまって調べられません。 headコマンドで頭から100行出力しようとしてもエラーが帰ってきます。 tailコマンドを使えば、ファイルの終端から、サイズを決めて出力することは、できます。 tailコマンド使用例 tail -k 50000 AAA.txt > BBB.txt

質問者が選んだベストアンサー

  • ベストアンサー
  • Lean
  • ベストアンサー率72% (435/603)
回答No.1

UNIX系OSには普通あるのでAIXでもあると思いますが、1つのファイルを複数のファイルにサイズ指定や行数指定で分割してくれるコマンドにsplitコマンドがあります。 ただ、wcコマンドやheadコマンドがエラーになるようなのでうまく分割してくれるかは分かりませんが。 コマンドの有無やオプション指定等については、manデータ(オンラインマニュアル)やリファレンスマニュアルで確認してください。  

autuka
質問者

お礼

Leanさん splitコマンドで、分割できることができました。 解答ありがとうございました。

関連するQ&A

  • unixでファイルの中身をコピーしたらサイズが変わりました・・・

    すいません。UNIX初心者です。 unixでAというファイルをcatコマンドで全部表示させ全コピーし 別のウィンドウにviで貼り付け、Bというファイルを作ったのですが 何故かファイルサイズが変わってしまいました。 cp -pでは変わらないのですが・・・ sdiffでAとBを比較したら何も差分はなかったのですが、 diffで比較すると一部を除いて差分が出てきたのですが、見た目どこに差分があるのかわかりません。スペースか何かか?と思ったのですが、肉眼で確認する限り違いがあるようには思えません。 unixの端末からftpでwindowsの端末にファイルを転送したときも同じようにファイルサイズが変わってしまいました。。。 二回目やったら何故かファイルサイズ変わらず成功しましたが。 すいません、考えられる可能性を教えていただけますでしょうか

  • UNIXのコマンド教えて下さい。

    UNIXで、lsの結果をファイルに出力する際、 ls > aaa.txtのようにすると出来ますが、 実行したコマンド "ls -la > aaa.txt" もファイルに出力させたいのですが、どうすれば出来ますか? 知ってる方教えて下さい!

  • LANDISKをAIX(UNIX系OS)にマウントする

    OSがAIXのマシンから、LANDISKへ直接ファイルを書き込みたいのですが ※LANDISK=IO-DATAのLAN接続型の外付けハードディスク  以下のURL参照  http://www.iodata.jp/prod/storage/hdd/2005/hdl-u/ そこで、AIXのファイルシステムにLANDISKをマウントできないか 知りたいのです。 どなたかアドバイスください 私なりに思うことを以下に記述します。 LANDISKの仕様には以下の記述があります ***** 以下 仕様に関する記述 ***** ファイルサーバー機能 ・Windowsファイルサービス※ ・Macintoshファイルサービス※ ・FTPファイルサービス ・AVeL LinkServer機能 *********************** UNIXのファイル共有サービスが含まれていません ということは、 AIX、LANDISKとも標準装備のままでは、 AIXのファイルシステムにマウントできないのでは とおもっています マウントするには、 (1)AIXにWINDOWSファイル共有サービスを 使えるようにする (2)LANDISKにUNIXのファイル共有サービスを 使えるようにする のいずれかが必要なのかなと思ってます

  • ファイル数の取得

    ディレクトリにあるファイル数を出力するUNIXのコマンドを探しています lsやls -lですとファイルの詳細までは見れますが、ファイル数は出てきません。 その他調べてみたのですが、方法が見つかりませんでした。 最悪はlsの結果をファイルに書き出してそのファイルの行数を見れば出来そうですが あまりにつたないやり方なので…。 ご存知であればよろしくお願いします。 正式にはBSDではなくBSDをベースにしたマシンですので もしかしたらBSDのコマンドが動かない or BSD以外のコマンドでも動くなどあるかもしれませんが どれかのUNIXで使えれば試してみますので 何かコマンドをご存知であれば教えていただければと思います。 よろしくお願いします。

  • shell の time コマンドの結果をファイルに出力する方法(AIX)

    AIX4.3 の環境でプログラムのパフォーマンスを確認しようと思っています。「time XXXXX 2> perform.log」で標準エラー出力をファイルに書き出そうとしているのですがうまくいきません。time コマンドのパフォーマンス結果は標準エラー出力に書き出されると思うのですが、リダイレクトしたファイルは何も書かれていません。画面にtime コマンドの結果が表示されるだけです。time コマンドではなく通常のエラーは標準エラー出力からファイルに書き出すことはできます。原因がわからずこまっています。よろしくお願いします。

  • UNIXのdiffコマンドについて

    UNIXのdiffコマンドは、ファイルを比較するときに同じテキストであっても時々は違っていると出力されるケースがあると聞きましたが、詳しく内容をご存じの方教示願います。(OS[solaris,HP-UX,AIX,Linux]の違いにも関係があるようですが?)

  • UNIX入門者です。どうやって慣れていけばいいでしょうか。。

    こんにちは。よろしくおねがいします。 つい先日AIXベーシックの試験を受験し、不合格でした。 67%正解で合格のところ、62%で不合格でした。 UNIX自体、1ヶ月前に初めて触れたのですが、入門書などを読み、ディレクトリ構造やコマンドやviエディターの勉強をして試験に臨みました。(とはいえ理解度は低く、暗記という感じです) 不合格の感想としては、「もう少し理解度を深めてからでないと合格は難しい」「実機にてコマンドを打つ習慣をつけないと本だけでは体が覚えないだろう」と感じています。しかし、再受験してどうにか合格したいと思っています。 そこでアドバイスをいただきたいのですが (1)もしAIXベーシックを受験された方がいましたら、役に立つおすすめの問題集や本やサイトはございませんでしょうか。(受験されてない方でもアドバイスおねがいします) (2)UNIX入門者が初めてコマンドを叩く場合、どのようなことから始めると効率が良いでしょうか。 もう少しでもUNIXの概念を理解できれば、(コマンドの世界を)楽しく感じることができそうなのですが、その一歩手前で足踏みしていて、勉強が苦痛に感じているところです。どうかアドバイスよろしくおねがいします。

  • Win SFU (Services for Unix)環境下で2GB超ファイルの末尾を取得したい

    業務上、2GB超のファイルを操作する必要があり、Win2Kを使って、その下でUnixコマンドを使用できるよう、SFU (Services for Unix) を使用しています。 そのシステム上で、2GB超のファイルの末尾nバイトを取得する処理が必要になるのですが、tail -c や、dd 等を使用しても、ファイルの末尾を取得するのではなく、変な動きをしてしまいます。 何か別の方法をご存知でしたら教えて頂けますでしょうか。 <前提> 1. ファイルの大きさは、都度変わりうる(min: 0, max: 数十GB) 2. NTFS上に、2GB超のファイルを既に書けていて、wc などの、単純にファイルを先頭から操作するコマンドは機能している。 3. SFUのkshを使用している。(他処理と連携したシステムの一部として作りたいので、パイプ・リダイレクト等で繋いで手操作はゼロにしたい) <既に試してダメだった方法> tail -c n ... 先頭からファイルを参照しているような動きをする tail +c ファイルサイズ-n ... 'Could not seek to byte -2139091255n file 'とエラーになる dd ... seek=n ... tail + と同様に、seekが失敗したとのエラー表示をし、エラーになる Perlでseekシステムコール システムコールが失敗する。 よろしくお願いします。

  • AIXでのメモリ使用率の計算

    各OSでのvmstatコマンドの出力からメモリ使用率を計算しようとしております。 Linuxの場合の使用可能なメモリサイズは free+buff+cache で計算されると思います。 Soralis8の場合はfreeのカラムの値にファイルシステムキャッシュに使用しているメモリも含まれるらしい(「Unixパフォーマンスチューニング」オライリー)ので、使用可能なメモリサイズは free のカラムの値を見ればいいと思います。 お伺いしたいのはAIXの場合なのですが、マニュアルを読む限り、freカラムの値には、ファイルシステムキャッシュのメモリが含まれていないらしく、使用可能なメモリサイズが見積もれません。 AIXの場合、どのようにして使用可能なメモリサイズを見積もるのが宜しいでしょうか? もしご存知の方がおられましたらご教示下さい。 宜しくお願いいたします。

  • UNIXでのコマンドエラーについて

    初心者です。 UNIX上で下階層を含めて存在するファイルの数を知りたかったので ネットで検索して for d in `find . -type d`; do echo $d,`ls "$d" | wc -l`; done というコマンドをみつけて実行してみたのですが、 for: コマンドが見つかりません. d: 定義されていない変数です. というエラーとなってしまいます。 UNIX上のなにか制約があるのかどうかよく判りません。 どなたかなぜエラーが出るのかとこのコマンドを正常に実行する方法を教えていただけないでしょうか?