• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:SED スクリプトファイルを複数のファイルに作用させたい。)

SEDスクリプトファイルを複数のファイルに作用させる方法とは?

このQ&Aのポイント
  • SEDのスクリプトファイルを使用して複数のファイルに変換を行う際、手動で15回も実行するのは大変です。
  • コマンドラインから一つのスクリプトファイルを複数の対象ファイルに作用させることは可能です。
  • SEDコマンドを利用することで、効率的に一括で処理を行うことができます。

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

  • ベストアンサー
  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.1

お使いの環境がわかりませんが、sed が最近の GNU sed なら、 sed -i ... でファイルの inplace-editing をしてくれます。 古いイメージを残すファイル名は指定できませんが、 拡張子を指定できますのでこれでなんとかするとか。 たとえば sed -i.bak -f henkan.sed kekka1.txt とすると、 kekka1.txt はスクリプトによる操作結果が反映されたものになり、 kekka1.txt.bak はスクリプト実行前のものになります。 データファイルは複数指定できますので、これと組み合わせれば sed -i.bak -f henkan.sed kekka1.txt kekka2.txt ... kekka15.txt のように一度に指定できます。 現在はどのように処理しているのかわかりませんが (まさか15個のファイルに付いて一つ一つ 手でコマンドラインから入力ですか?)、 シェルの機能を活用したらいいんじゃないでしょうか。

jigsaw2
質問者

お礼

 はじめまして、sakusaker7さん。  このたびは、ご教示ありがとうございました。  私が使っているのは「GNU sed version 1.18 + multi-byte extension 1.03」です。  WinXPのコマンドプロンプトから使用しています。  残念ながら「-i」オプションがないので、簡単なループのバッチを作って急場をしのいでおります。(^^ゞ for %%a in (temp*.txt) do sed -f henkan.sed %%a > kekka_%%a リダイレクトされた、 kekka_temp01.txt kekka_temp02.txt kekka_temp03.txt    ・    ・    ・ kekka_temp15.txt を結果ファイルとして使用しています。  最新のsedはすごいんですね。オリジナルファイルの直接更新やデータファイルの複数指定が出来たりして。  これからはLinuxとかも体験してみようかな、って思っています。

関連するQ&A