- ベストアンサー
UNIXで800行毎に改行をいれる方法ありますか?
1行が10万バイトぐらいあるので、800行毎に 改行コードを入れたいのですが、UNIXで簡単に 実現する方法ありますでしょうか?
- matchori
- お礼率31% (149/469)
- その他(プログラミング・開発)
- 回答数4
- ありがとう数4
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
すみません、プログラム間違えました。こちらです。 #include <stdio.h> int main() { FILE *f1,*f2; int i=0; char c; f1 = fopen("afile.txt", "r"); f2 = fopen("bfile.txt", "w"); if (f1 && f2) { while(!feof(f1)) { fscanf(f1, "%c", &c); fprintf(f2, "%c", c); i ++; if (i == 800){ i=0; fprintf(f2, "\n"); } } fclose(f2); fclose(f1); } }
その他の回答 (3)
- madman
- ベストアンサー率24% (612/2465)
a.cというファイルに下記のプログラムを入力して保存してください。 /*----ここから---*/ #include <stdio.h> main() { FILE *f1,*f2; int i=0; char c; f1 = fopen("./adile.txt", "r"); f2 = fopen("./bdile.txt", "w"); if (f1 && f2) { while(feof(f1)) { fscanf(f1, "%c", &c); fprintf(f2, "%c", c); i ++; if (i == 800){ i=0; fprintf(fp2, "\n"); } } } } /*----ここまで---*/ で、コマンドラインにて cc a.c を実行してください。 a.outという実行モジュールができますので 元のファイルをafile.txtとして同じディレクトリに保存し、a.outを実行してください。 a.outに引数はいりません。 出力結果はbfile.txtと出力されるはずです。 コンパイラが無い場合はgccをインストールするか、この方法はあきらめてください。 尚、2バイト文字は無視します。
- bikkuri
- ベストアンサー率33% (23/68)
800行毎じゃなくて、800バイト毎に改行ですよね。 foldコマンドでどうでしょう。 fold -800 filename > output だったと思います。 しかし、全角文字が入っていると、ちょっとまずいかも
お礼
はい。800バイト毎です。すみません。 試しましたが全角は入っているので駄目なようです。
- rara_sun
- ベストアンサー率50% (271/539)
こんな感じでは、用件に合いませんか? awk '{print $0; if( FNR%800==0 ){print "\n";}}' < afile.txt > bfile.txt
お礼
ありがとうございます。惜しかったです。 # awk '{print $0; if( FNR%800==0 ){print "\n";}}' < afile.txt > bfile.txt awk: レコード `%03-3541-3411トウキヨウトチ...' が長すぎます。 レコード番号 4
関連するQ&A
- UNIXでの改行コードの置換
2バイト改行コードが入ってるデータを1バイト改行に置換してから、 コボルにて入力ファイルとして扱いたいのですが、 UNIXのコマンドで、置換することは可能でしょうか? ちなみにファイルは可変長です。 どなたかご存知の方がいられましたら、ご教授頂けます様よろしくお願い致します。
- ベストアンサー
- その他(プログラミング・開発)
- HTMLで開いたsrcの改行コードを調べる方法を教えてください
cgiでHTMLを作成していますが、cgiを実行した時に HTMLで改行が2個入ってしまいます。 unix上のファイルをfgetsにて1行ずつ読み込んで そのまま出力しています。 改行コードを削除したいのですが、 表示しているHTMLのsrc内にある改行コードに何(どの改行コード)が入っているのか分からず、削除できません。 (fgetsで読み込んだ1行の最後に"\0"が入っていると思って、それを削除してみたのですが、駄目でした。このやりかたは間違えていますか?正しい方法を教えてください。) 宜しくお願いいたします。
- ベストアンサー
- CGI
- UNIXからダウンロードしたファイルをLineInput#で読み込めない
UNIX(AIX)からダウンロードしたテキストファイルをVBのLineInput#ステートメントで、行単位に 読み込もうとすると、とんでもない行が読み込まれ、予測しない動作をします。 おそらく改行コードの問題だと思うのですが、再度ダウンロードすることができないので、Windows側で改行コードの変換をしたいと思います。 なにかよい方法がありましたらご紹介ください。
- ベストアンサー
- その他(OS)
- 【unix】nkfで文字コードを変えずに改行コードを変えたい
unix(BSD)初心者です。 PHP経由でunixを操作、ファイルの加工をしております。 nkfコマンドにてLF改行をCR+LF改行にしたいのですが、 ・文字コードは無変化で改行コードだけ変える などということはできるのでしょうか? いろいろな文字コードのファイルが混在している場合に文字コードはそのまま保ちつつ改行コードはCR+LFに統一したいのです。 お詳しい方よろしくお願いします。
- 締切済み
- その他(プログラミング・開発)
- diffコマンドの無視条件指定方法(改行コード, 特定行)
Unix等のDiffコマンドの結果で、いくつかの条件を無視したいのですが 方法がわかりませんでした。 よろしければどなたか教えていただけないでしょうか。 1.改行コードを無視したい テキストの内容は同じだけど、改行コードが異なったファイルを扱う場合、すべての行が差分として扱われてしまいます。 改行コードを無視したdiffのとりかたはないでしょうか? 2.特定の行を無視したい CVSのRCSキーワードが異なる行は無視して差分をとりたいのですが、 上手くいきません。。。-Iオプションで正規表現が指定できるとのことですが、挙動がどうも不明です。 上手くいかない例:diff -I '\$Date' a.c b.c ちなみに試みた環境は、cygwinでdiffは以下のバージョンです。 $ diff -v diff (GNU diffutils) 2.8.7 どちらか片方でもわかるかたいらっしゃいましたら、よろしくお願いいたします。
- ベストアンサー
- Linux系OS
- 改行コードの変換方法を教えて下さい
IISで使用していたCGIをApacheに移植したところ、動きません。Windowsの改行コードをUNIXのそれに変換する必要があるらしいのですが、変換の方法が判りません。どなたかご教示をお願いいたします。
- ベストアンサー
- その他(インターネット接続・通信)
- 1行ごとに改行するのは何故でしょうか
ブログや掲示板で1行ごとに改行する人がいるのは何故でしょうか? ひどいものは数行あけています。 大変読みにくいと思うのですが、なにか理由があるんでしょうか?
- ベストアンサー
- ブログ
- 改行コードだけの行が現れるまでを1行として取得
PHPでインプットファイルから、 改行コードだけの行が現れるまでを1行として取得しようと思っています。 下記例のように、 fgetsで行を取得しようとしたら、 改行が現れた時点までを1行としてしまうので、 少し違った1行の取得となってしまいました。 どうすればPHPで実現できるのか教えて欲しいです。 【例】 this is a pen. good-bye. ↓ this is a pen.good-bye. を1行分として取得したい。 # PHP 5.3.9 # CentOS 5.8 ---- $inputpath = '/home/test/test.txt'; $file = fopen($inputpath,"r") or die("open error $inputpath"); flock($file,LOCK_SH); while (!feof($file)){ $string = fgets($file,10000); print "$string"; print "\n"; } //relese the lock flock($file, LOCK_UN); //close the file fclose($file); ----
- ベストアンサー
- PHP
- Windowsでの改行コード
HTMLを書くのにあたりUNIXサーバが主流なのだから、 UTF-8、改行コードはLFで行うことを勧められました。 Windowsの改行コードはCR LFだそうですが、 LFにした場合、Windows上でJAVAScriptなどのテストをしたときに 何か不都合があるのでしょうか。 改行コードが CR LF でUNIX上でトラブルになった事例は見つけました。 反対のことが良く分かっていません。よろしくお願いします。
- ベストアンサー
- Windows系OS
- 複数行のテキストボックスを受け取って、改行させたい。
複数行のテキストボックスを受け取って、改行させたい。 お世話になります。ASP.NET VB2005を使っています。 Byrefでテキストボックスと、ByValで何桁目で改行させたいかを受け取って、 テキストボックスの内容を指定桁数で改行を入れたいのですが、 どのようにすればいいのでしょうか? 1行目が何桁あるかを判断する。 指定された桁数以上あったら改行させる。 という事を実現したいと考えています。 以上です、宜しくお願い致します。
- 締切済み
- Microsoft ASP
お礼
ありがとうございます。 残念ながらccもgccも入っていなく、Javaかシェルしか入ってなかったのですが、 他のマシンでは、10万件を2秒くらいで処理してくれ 動作しました。 gccなどを入れてもらえるか検討してみます。