• ベストアンサー

ファイルのヘッダー部分の余計な文字列を削除したい

デジカメで撮影した写真をパソコンに保存したのですが、 Windows Picture and Fax Viewerでは 「プレビューを利用できません」と見ることができませんでした。 理由は、画像ファイルをバイナリエディタで開いたところ、 1行目(1行目~改行まで)のヘッダー部分に余計な文字列が入っているからで、バイナリエディタでこの文字列を削除すると画像は見れるようになりました。 しかし、画像は1000枚以上あり、手作業ではとてもじゃないですが骨が折れます。 なので、ファイルの1行目を削除できるような方法またはフリーソフトをご存じないでしょうか? よろしくお願いします。

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

  • ベストアンサー
  • MASA_H
  • ベストアンサー率42% (64/151)
回答No.1

一行が固定長ならddでskip指定してやれば出来ます。 dd if=input of=output skip=80 http://www.chrysocome.net/dd 可変長ならsedを使えば出来そうかな。 sed '1d' input >output http://gnuwin32.sourceforge.net/packages/sed.htm 後はPythonあたりで書いてみるとか。 in=file("input","rb") out=file("output","wb") in.readline() out.write(in.read)

参考URL:
http://www.chrysocome.net/dd,http://gnuwin32.sourceforge.net/packages/sed.htm
hiroko_ss
質問者

お礼

解決しました。 ありがとうございます。

関連するQ&A

  • ファイルの文字列の処理の質問

    今ファイルに対して文字列の処理をしています。 あるファイルに対して一定の文字列を検索して、その検索したい文字列が なければ、その一行をファイルに出力したいですが、手元にwindowsバージョン のgrep.exe で実現すると考えています。 しかし、検索したいファイルは、文字列が入ってない行があります。 そのため、検索したい文字列が存在しない行は、改行だけの行を結果として 出力されています。改行だけの行を除きたいですが、どうすればいいか? ファイルのsjisです。例えば、内容としては、以下のようになっています。 aiiiiii ballllll fafafa 777777 とするファイルがあります。そのファイルに対して、aという文字が入ってない行を 取りたいですが、実際にgrep -v "a" ファイル名 でやると、777777の行とすべて 改行だけある行が取られてました。 777777だけをとる方法がありますでしょうか?

  • 画像ファイルの関連付け(レジストリ)

    現在Windows XP pro + Office2003にPhoto Editorを追加インストールしております。 通常はWindows Picture and Fax Viewerで画像ファイルを開く様に拡張子の関連付けをしておりますが、Office Bookに挿入した画像ファイル(jpegfile)のハイパーリンクよりファイルを開くとPhoto Editorが立ち上がってしまいます。 プログラム(システム)上、上記を解決するにはPhoto Editorをアンインストールするか、レジストリを書き換えるしか無いと思いますが、出来ればPhoto Editorはアンインストールしたくないので、Photo EditorとWindows Picture and Fax Viewerを並存させるレジストリの書き方(追加方法)をお教え頂きたく思います。 尚、Windows Picture and Fax Viewerを既定(標準)に設定です。 jpegfile → shell → open → command 追加項目(種類?) → 文字列値?? → 値の名前 → 値のデータ (値のデータは出来れば作成時にそのままコピペが出来れば助かります。) すみませんがどなたか詳しい方、ご教授宜しくお願い致します。

  • Linuxコマンドにて ファイル内の文字列を置換えしたい

    Linuxコマンドにて ファイル内の文字列を置換えしたい 内容 16進データ 22 0D 0A→22 0Aに置換えたい ※このパターンのみ 0Dを削除したい  trではダメみたい、現在は、Windowsのバイナリーエディタにて行っていますが、Linuxコマンドにて行いたい よろしく御願いします

  • バイナリファイル内の文字列を検索したい

    初心者で恐縮ですがよろしくお願いします。 入力された値でバイナリファイル内検索し、その値がある行を特定したいのですが、file_get_contentsしてみても歯抜けになってしまっていて、そのままの状態で文字列として取得することができません。↓でPHPはバイナリファイルも文字列として検索でいるとあったんですが・・・  http://blog.asial.co.jp/707 バイナリファイルはphpやjavascriptが該当すると認識しているんですが、正しいでしょうか?htmlゃcssファイルもバイナリファイルと言っていいんでしょうか? よろしくお願いします。

    • ベストアンサー
    • PHP
  • テキストで特定の文字列を含む行を削除

    テキストエディタで特定文字列を含む行と空白の行を削除したいです。 このようなことができるフリーのソフトがあったら教えてください。 テキストデータは数メガになりますのでメモ帳のような簡単なエディタでは開けません。 また、エクセルでも最大行を超えるため読み込めません。

  • 【Word2007】ヘッダー、フッターの文字列を置き換えたい

    Word2007を使っています。 ヘッダー、フッターの文字列を置き換えるマクロを 作りたいと思っています。 ヘッダー、フッターには「$replace01」のような文字列があり、 それをDocumentのOpenイベントで自動的に置き換えたいと思っています。 ヘッダー、フッターにフォーカスがあれば、 Selection.Find.Executeで文字列が置き換えられそうだと、 マクロの記録をして分かりました。 しかし、ファイルを開いたときには、 Selectionがヘッダー、フッターにないため、 うまくいきません。 何か方法はございませんか? もしご存知でしたら、教えてください。 よろしくお願いいたします。

  • 文字列で2行だけ削除する方法。

    PHP5を使っています。 file_get_contentsで文字列を取得したのですが 先頭行2行と最後の行を削除する方法が知りたいです。 改行はLFですがCR+LF,CRでも対応したいです。 また、文字コードもUTF8ですが、どんな文字コードでも対応したいです。 どんな方法が最もスマートな方法でしょうか?

    • ベストアンサー
    • PHP
  • テキストファイルの文字列の削除

    1行あたりIPアドレスが1つ書いてあるテキストファイルから、指定したIPアドレスを削除するプログラムを作成しています。 r+モードでfoepnした後にfgetsで一行ずつ読み取り、指定されたIPアドレスかどうかをチェックし、該当すればその行をNULLで埋め尽くしているのですが、サクラエディタなどで開くとその行が削除ではなくNULL文字で埋め尽くされているといった現象になります。 削除するにはどうすればよいでしょうか? ipaddress.txt --------------------- 192.168.0.1(\n) 192.168.0.2(\n) 192.168.0.3(\n) --------------------- 以下、コード bool DeleteAllowIP(char *ipaddr) {   FILE *fp;   char szBuf[256];   int leng = 0;   long posi=0;   // 初期化   FillMemory(szBuf, sizeof(szBuf), 0);   // ファイルオープン(追記)   if(fopen_s(&fp, AllowPath, "r+"))     return FALSE;   // 削除   while (NULL != fgets(szBuf, sizeof(szBuf), fp)){  // 1行読み取る     if(NULL != (strstr(szBuf, ipaddr))){  // 削除IPに合致するIPを検索       fseek(fp, posi+1, SEEK_SET);  // 削除する先頭行セット       leng = strlen(szBuf) - 1;  // 改行を除く文字数を取得       while(leng>=0){   // 文字数分'\0'をセット         fseek(fp, posi+leng-1, SEEK_SET);         leng--;         fputc('\0', fp);       }       fseek(fp, posi+1, SEEK_SET);  // 次の行の先頭にセット     }     posi = ftell(fp);   }   // ファイルクローズ   fclose(fp);   return TRUE; }

  • 複数行の文字列をメールのヘッダーに入れて送る方法?

    どなたか複数行の文字列をメールのヘッダーに入れて送る方法しっていますか? 例: $test = "今からテストメールを送信します。\n用意はいいですか?"; $mail_header .= "X- TEST: {$test}\r\n"; 上記のような文字列をメールのヘッダーに入れて送ると「今からテストメールを送信します。」部分はX- TEST:のヘッダーの中に納まりますが、「用意はいいですか?」部分がメールの本文の上部にはみ出してしまいます。ヒアドキュメントも試しましたが、文字列の改行部分以降がメールの本文の上部にはみ出してしまいます。 やはり、一行につき一つのヘッダーが必要なのでしょうか? このスレッドの質問に関して詳しい情報が記載されているサイトのURL等、ご存知でしたら、そちらもお願いします。

    • 締切済み
    • PHP
  • txtファイルから特定の文字列が書かれた行だけを取得や削除するソフト

    txtファイルで 特定の文字列が書かれた行だけを 取得や削除するソフトや方法を探しています。 フリーで無いなら、シェアウェアなどになってもかまいません 例えば (12)と書かれた文字列がある行だけを抜きだしたり 逆に(12)と書かれた文字列がある行だけを削除したり したいです。 そのソフトの操作方法も教えてくださると助かります。 では、回答を心よりお待ちしております。

専門家に質問してみよう