1GBを越えるような大きなSQLファイルのうち、一部分だけを変えたいです。

(例:SQLファイルの10~100行目くらいにAAAと書かれた部分があるので、それをBBBと直したい。ただし、他の行に含まれているAAAは直したくない)
どういうやり方がベターでしょうか。

※質問の仕方が悪かったようなので、文章を変えて再投稿してみました。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2008/04/08 15:40:36
  • 終了:2008/04/15 15:45:02

回答(3件)

id:dev_zer0 No.1

dev_zer0回答回数332ベストアンサー獲得回数252008/04/08 15:56:30

ポイント27pt

http://www.k3.dion.ne.jp/~jod/viusage.html

viで十分のような気がします。

10行目~100行目までのAAAという文字列をBBBに置換したいだけならば

:10,100s/AAA/BBB/g

で可能です。

id:y-kawaz No.2

y-kawaz回答回数1421ベストアンサー獲得回数2262008/04/08 16:13:36

ポイント26pt

適当なプログラムでフィルタすればいいんじゃないでしょうか。

例えばLinuxでperlコマンドを使って以下のような感じでどうでしょう?

cat 1GB.sql | perl -pe '$lno++;if(10<=$lno&&$lno<=100){s/AAA/BBB/g}' > 1GB_2.sql

行番号 $lno が10以上100以下のときだけ正規表現で置換しているだけです。

http://q.hatena.ne.jp/answer

id:studio15

この方法が良いような気がするので試しにやってみます。

2008/04/11 00:14:47
id:hidetoz No.3

ひでと回答回数88ベストアンサー獲得回数82008/04/08 16:04:21

ポイント27pt

修正個所がごく限られているなら、バイナリエディタを使ってみてはどうでしょうか?

下記エディタなら該当個所のみロードするので、巨大なファイルでも一瞬で開けますよ。

http://www.zob.ne.jp/~c.mos/soft/bz.html

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません