ベストアンサー UNIXで800行毎に改行をいれる方法ありますか? 2003/07/03 21:37 1行が10万バイトぐらいあるので、800行毎に 改行コードを入れたいのですが、UNIXで簡単に 実現する方法ありますでしょうか? みんなの回答 (4) 専門家の回答 質問者が選んだベストアンサー ベストアンサー madman ベストアンサー率24% (612/2465) 2003/07/03 23:23 回答No.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); } } 質問者 お礼 2003/07/05 14:51 ありがとうございます。 残念ながらccもgccも入っていなく、Javaかシェルしか入ってなかったのですが、 他のマシンでは、10万件を2秒くらいで処理してくれ 動作しました。 gccなどを入れてもらえるか検討してみます。 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 その他の回答 (3) madman ベストアンサー率24% (612/2465) 2003/07/03 22:54 回答No.3 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バイト文字は無視します。 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 bikkuri ベストアンサー率33% (23/68) 2003/07/03 22:18 回答No.2 800行毎じゃなくて、800バイト毎に改行ですよね。 foldコマンドでどうでしょう。 fold -800 filename > output だったと思います。 しかし、全角文字が入っていると、ちょっとまずいかも 質問者 お礼 2003/07/04 09:18 はい。800バイト毎です。すみません。 試しましたが全角は入っているので駄目なようです。 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 rara_sun ベストアンサー率50% (271/539) 2003/07/03 22:00 回答No.1 こんな感じでは、用件に合いませんか? awk '{print $0; if( FNR%800==0 ){print "\n";}}' < afile.txt > bfile.txt 質問者 お礼 2003/07/03 22:14 ありがとうございます。惜しかったです。 # awk '{print $0; if( FNR%800==0 ){print "\n";}}' < afile.txt > bfile.txt awk: レコード `%03-3541-3411トウキヨウトチ...' が長すぎます。 レコード番号 4 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 カテゴリ [技術者向] コンピュータープログラミング・開発その他(プログラミング・開発) 関連するQ&A UNIXでの改行コードの置換 2バイト改行コードが入ってるデータを1バイト改行に置換してから、 コボルにて入力ファイルとして扱いたいのですが、 UNIXのコマンドで、置換することは可能でしょうか? ちなみにファイルは可変長です。 どなたかご存知の方がいられましたら、ご教授頂けます様よろしくお願い致します。 HTMLで開いたsrcの改行コードを調べる方法を教えてください cgiでHTMLを作成していますが、cgiを実行した時に HTMLで改行が2個入ってしまいます。 unix上のファイルをfgetsにて1行ずつ読み込んで そのまま出力しています。 改行コードを削除したいのですが、 表示しているHTMLのsrc内にある改行コードに何(どの改行コード)が入っているのか分からず、削除できません。 (fgetsで読み込んだ1行の最後に"\0"が入っていると思って、それを削除してみたのですが、駄目でした。このやりかたは間違えていますか?正しい方法を教えてください。) 宜しくお願いいたします。 UNIXからダウンロードしたファイルをLineInput#で読み込めない UNIX(AIX)からダウンロードしたテキストファイルをVBのLineInput#ステートメントで、行単位に 読み込もうとすると、とんでもない行が読み込まれ、予測しない動作をします。 おそらく改行コードの問題だと思うのですが、再度ダウンロードすることができないので、Windows側で改行コードの変換をしたいと思います。 なにかよい方法がありましたらご紹介ください。 ネットワークエンジニアとは?技術職の未来を考える OKWAVE コラム 【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 どちらか片方でもわかるかたいらっしゃいましたら、よろしくお願いいたします。 改行コードの変換方法を教えて下さい 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); ---- Windowsでの改行コード HTMLを書くのにあたりUNIXサーバが主流なのだから、 UTF-8、改行コードはLFで行うことを勧められました。 Windowsの改行コードはCR LFだそうですが、 LFにした場合、Windows上でJAVAScriptなどのテストをしたときに 何か不都合があるのでしょうか。 改行コードが CR LF でUNIX上でトラブルになった事例は見つけました。 反対のことが良く分かっていません。よろしくお願いします。 複数行のテキストボックスを受け取って、改行させたい。 複数行のテキストボックスを受け取って、改行させたい。 お世話になります。ASP.NET VB2005を使っています。 Byrefでテキストボックスと、ByValで何桁目で改行させたいかを受け取って、 テキストボックスの内容を指定桁数で改行を入れたいのですが、 どのようにすればいいのでしょうか? 1行目が何桁あるかを判断する。 指定された桁数以上あったら改行させる。 という事を実現したいと考えています。 以上です、宜しくお願い致します。 UNIX上で文字コードの一括変換はできますか? UNIX上で、文字コードを変換したいのですが、今まではSJISからEUCといった変換にnkfを使用してきましたが、nkfだと1ファイル毎でしか文字コードを変換できませんでした。1行のコマンドでそのディレクトリ内の全てのファイルの文字コードを変換してくれるコマンドはありますでしょうか? UNIX上で実現できれば、Perlでもなんでも結構です。よろしくお願いします。 Excelセル内の改行を含む文字列の1行目抽出 Excelセル内の改行を含む文字列があり、関数を使って、その1行目だけ抽出したい。 たとえば、下記のような式を書きました。「改行コード」おかしみたいで動作しません。 Left("A1", Find(vbCrLf, "A1")) (改行コードをさがして、そこまでの文字列を切り取る) これをVBAで書く方法があれば、コードを教えてください! AIは使う人の年齢や市場にも影響する?人工知能の可能性 OKWAVE コラム テキストファイルの最終行の改行コード削除 お世話になります。 SQLコマンドを発行し、csvファイルを自動生成させるシェルスクリプトを作ったのですが、最終行にある改行コードを削除して欲しいとの指示を受けて、その方法を調査。試行錯誤しているのですがよい方法が見つかりません。 最終行にある改行コードのみを削除するにはどうしたら宜しいでしょうか。 ご教示頂ければ幸いです。 宜しくお願い致します。 以上 apeboard+の3行以上の改行方法 apeboard+で掲示板と日記を作成中の者です。 レンタルなどの掲示板は何行改行しても反映されますが、このプログラムを使って作られた掲示板は3行以上の改行は無効となって反映されませんよね。 apeboard+で何行でも改行できるようにするにはどうすればよろしいでしょうか? よろしくお願いします。 エクセル 改行から1行に A列の各セルに文字が改行されて入力されている場合、それを各セル改行から元の1行に戻す必要がある時、各セル一つずつ元に戻すのは大変なので何か便利な方法は無いでしょうか? windowsでの改行削除(一万行単位) windowsでの改行削除(一万行単位) 5万行近くあるテキストの改行を全てなくし、END(半角大文字)文字の部分だけ改行を残したいです。 サクラエディタの置換機能で¥nをNULL(何もなし)に置換するとものすごく処理が遅く、低スペックのためPCがフリーズしてしまいます。 エクセルでの処理も考えましたが同様にフリーズ。 unixでtrコマンドでの置換を試しましたが、文字化けしてしまいました。 dosかvbaなどでできないかと思いましたが、知識不足の為考えあぐねております。 pcはネットに繋がっていない為、フリーソフトの類は使用できないです。 どなたかいい方法をご存知の方教えてください。 宜しくお願いします。 【VB6】複数行のテキストボックスの改行 お世話になります。 VB6で、複数行入力出来るテキストボックスを作成しました。 そのテキストボックスの横幅は、最大30文字(60byte)まで入力出来ます。 ですが、あくまでフォーム上で伸縮させていた為、中途半端に折り返しされます。 【例】 iiiiiiiiiijjjjjjjjjjiiiiiiiiiijjjjjjjjjjiiiiiiiiiijjjあ jjjjjjj (↑計62バイトなので、本来であれば2行目に改行されてしまったjjjjjjjの左5文字を1行目に表示させたい) その行は特定のバイトを超えたらその場で強制的に改行!というソースを追加したいです。 その為には、常にテキストボックスの入力バイト数を監視するようにしなければならないと思いますが、なるべく動作や容量が重くならないような方法はありますでしょうか? 最終行の改行について CSVで出力しようとしてるのですが、 write #1,i;j などのように書くと、最終行の最後に改行が入ってしまいます。 これを解消する方法はないでしょうか。 よろしくおねがいします。 <br>で改行しても一行あいてしまいます 少し説明がわかりにくいかもしれませんが <br>タグを使って改行した場合、行と行の間はあきませんよね? でもたまに<br>タグで改行してるのに行と行の間が一行空くことがたまにあります。 その時のタグは <br>文 <br>文2 と打つと 文 文2 後で見るとこのように反映されます。 同じページで同じ<br>タグを使ってる他の行は改行だけで 行の間が空くことはないのに、何度やっても同じ箇所だけ一行空いてしまいます。 これはどうしてでしょうか?プラウザはIE6.0なんですが そこの部分だけ何度やっても一行空いて見た目が変です。 何か解決策はないでしょうか? perlでの改行コードの置換 perlで改行コードを置換したいのですが・・・ もとのファイルはS-JISコードでその中身をEUC(UNIXで使用するために)に変換します。ここまではOKなのですが、改行コードがうまく行きません。 改行コードをUNIXで使うためにLFだけにしようと思い、 $line =~ s/\r\n/\n/g; (これは\r\nで引っかからない) とか $line =~ s/\n/\x0A/g; とかにしてみたのですがうまく行きません。 どのようにすればよろしいでしょうか? 注目のQ&A 「You」や「I」が入った曲といえば? Part2 結婚について考えていない大学生の彼氏について 関東の方に聞きたいです 大阪万博について 駅の清涼飲料水自販機 不倫の慰謝料の請求について 新型コロナウイルスがもたらした功績について教えて 旧姓を使う理由。 回復メディアの保存方法 好きな人を諦める方法 小諸市(長野県)在住でスキーやスノボをする方の用具 カテゴリ [技術者向] コンピューター プログラミング・開発 Microsoft ASPC・C++・C#CGIJavaJavaScriptPerlPHPVisual BasicHTMLXMLCSSFlashAJAXRubySwiftPythonパフォーマンス・チューニングオープンソース開発SEOスマートフォンアプリ開発その他(プログラミング・開発) カテゴリ一覧を見る OKWAVE コラム 突然のトラブル?プリンター・メール・LINE編 携帯料金を賢く見直す!格安SIMと端末選びのポイントは? 友達って必要?友情って何だろう 大震災時の現実とは?私たちができる備え 「結婚相談所は恥ずかしい」は時代遅れ!負け組の誤解と出会いの掴み方 あなたにピッタリな商品が見つかる! OKWAVE セレクト コスメ化粧品 化粧水・クレンジングなど 健康食品・サプリ コンブチャなど バス用品 入浴剤・アミノ酸シャンプーなど スマホアプリ マッチングアプリなど ヘアケア 白髪染めヘアカラーなど インターネット回線 プロバイダ、光回線など
お礼
ありがとうございます。 残念ながらccもgccも入っていなく、Javaかシェルしか入ってなかったのですが、 他のマシンでは、10万件を2秒くらいで処理してくれ 動作しました。 gccなどを入れてもらえるか検討してみます。