• 締切済み

viの置換で /を含む文字

viで、置換を行いたいのですが度忘れしています。 以下のように/スラッシュを含む文字をファイル全体で置換する方法が知りたいです。 以下は当然駄目だと思うのですが・・・ このようにメタ文字は/だけなのでしょうか? :s/c:/test/sample/../g  駄目な例 c:/test/sample を ..に置き換えたいです。 c:/test/sample/data.bat

みんなの回答

  • notnot
  • ベストアンサー率47% (4848/10262)
回答No.1

文字列を囲む文字は何でも良いです。 :s=c:/test/sample=..=g あるいは、これでもOK :s/c:\/test\/sample/../g

関連するQ&A

  • メタ文字の置換

     いま、半角の[が含まれているテキストがあります。  このテキスト中の[を、別の文字に置換したいと思っています。具体的には、全角の【に置換したいのですです。  [は正規表現上メタ文字になるためか、うまくいかないのです。マッチしないのです。s/でもtr/でもだめなんです。  どなたか、[を【に置換する表現を教えてください。

  • 文字列の置換について…

    こんにちは。 VB2005の勉強をさせて頂いています。 テキストボックスがあり、その内容が以下のとおりだったとします。 テキスト内容:C:\Documents and Settings\User\My Documents\Visual Studio 2005\Projects\テスト この時、ボタンを押すと テキスト内容:C:\…\Projects\テスト というふうに、ある部分を省略した形にしたいと思っています。 ボタンを押した時のプログラムですが、「\」マークの1つ目の次の文字から5つ目の手前までの文字列を 「…」で置換するといった具合にしたいのですが、なかなか出来なくて困っています。 何かわかり易い、サンプルソース等ありませんでしょうか? また、何か他の方法等ございましたら、そちらもアドバイス頂けると助かります。 よろしくお願いいたします。

  • ファイルの内の文字列の置換について

    質問なんですが、sedコマンドを使用して文字の置換をやってみたんですが、同じファイルに置換した情報を上書きすることは可能でしょうか? 今試した例としては sed -e 's/aaa/bbb/g' test > test と試してみたんですがファイルの内容がなくなってしまっていました。 同じファイルに置換内容を入れることは可能なのでしょうか? 他の方法がある場合は教えてください。 よろしくお願いします。

  • sedの置換文字に変数を使用したいのですが・・・

    あるファイルの特定の文字を変換し、上書きをする処理を行いたいのですが、sedの置換文字に変数が渡せなくて困っています。 例: X="a" Y="b" echo test.txt | sed 's/${X}/${Y/g}' >test.txt sedでは置換文字に${X}といった変数を使用することはできないのでしょうか?

  • エクセル 置換後の文字列について

    エクセル2003です 置換後の文字列について質問させてください 特定のセルに文字を入力し 例 C100に(9月)等 検索と置換にて 置換後の文字列を C100のテキストに 置換したいのですが 入力時にC100を選択する方法がわかりません  よろしくお願い致します

  • UNIX のシェル 文字の置換について

    シェルでファイルの文字列を置換したいです。 /*~*/のコメントの文字なので、1行数を変えたくないです。 ─────────────────────────── ※1文字分の空白を「_」で表示します。 test.txtファイルの「XXXXX」を「aa___」に置換する。 ─────────────────────────── 【test.txt 置換前】 /**************/ /*_XXXXXYYYYY_*/ /**************/ 【シェルの内容 test.sh】 #!/bin/csh set IN_henkan = `printf "%-5s" $1` perl -i -p -e 's/XXX/'$IN_henkan'/g' test.txt 【シェルを実行】 test.sh aa 【test.txt置換前 希望する状態】 /**************/ /*_aa___YYYYY_*/ /**************/ 【test.txt置換前 実際の状態】 /**************/ /*_aa_YYYYY_*/ /**************/ ─────────────────────────── 「aa」の後ろに1文字分の空白しか挿入されないです。

  • viエディッタでの改行追加

    viで特定の文字が来たら、改行をさせたいのですが方法が分かりません。 置換のやり方 { :1,$s/ **/ ***/ } で改行できるのでしょうか? 調べてみても改行の削除しか載ってないので困っています。 皆さんの力を貸して下さい。

  • viで一括で行をつなげたい

    viエディタで、 :%s/???/???/g とかで、行を繋げることはできないでしょうか。 行の最後がある特定の文字列がきた場合には、 (もしくは全ての行の) 行と行をつなげる(改行をなくす)という意味です。 viで「Shift+J」で1行単位でできるのは知ってるのですが 一括置換したいです。 もし、viでなくても他のテキストエディタ等で方法があれば 教えてください。

  • 数字のみを置換するバッチファイル

    いまテキストファイル内の文字列を置換するbatファイル(VBScript)を作成しているのですが、少し困っています。 ファイル内に英文字と数字が入り混じってる中(1000行くらい)で5文字以上連続する数字のみを置換したいのですが、どなたかアドバイス頂けないでしょうか?? ----------------------------------------------------------------- 例:以下のような文字列があって5文字以上連続した数字を全て■で置換 『iedds0123456ecefafa03223』  ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 『iedds■■■■■■■ecefafa■■■■■』 -----------------------------------------------------------------

  • 「?」の入った文字列置換を、RegEx.Replaceで行いたい

    WSHを使い、あるhtmファイルの中にある特定の文字列を、RegEx.Replaceを使って置換しようとしています。通常の文字列置換についてはなんとか成功しているのですが、下記のケースで壁に当たっています。前に進める為にはどうしたらよいか、ヒントをご存知の方がいれば大変有り難く思います。 今回作業の特徴としては 1)置換前の文字列の中にメタキャラ「?」が含まれており、 2)置換前の文字列は、DBから読み込んできた文字列である の2点です。(ちなみに1だけでは成功しているのですが、1と2が組み合わさると上手くいきません) 具体的には、下記のサンプルで置換前の文字列を url_before = "test.asp\?param=999" (?についてはエスケープ文字付与) のように明示的に書いてやると置換に成功しました。ところがDBから取得してきた文字列で置換をしようとしても失敗となります。 たとえばrs.fields("item")の中身が"test.asp?param=999"だったとして、先ほどの箇所を url_before = replace(rs.fields("item"), "?", "\?") とすると、置換されないのです。 '----- サンプル ----- Set fso = CreateObject("Scripting.FileSystemObject") Set regEx = New RegExp Set inFile = fso.OpenTextFile("c:\hoge\test1.htm") Set outFile = fso.CreateTextFile("c:\hoge\test1_wk.htm") ◆動くケース:url_before = "test.asp\?param=999" ◆動かないケース:url_before = replace(rs.fields("item"), "?", "\?") url_after = "test_999.htm" regEx.pattern = url_before repStr = url_after Do Until inFile.AtEndOfStream tempLine = inFile.ReadLine repLine = regEx.Replace(tempLine, repStr) outFile.WriteLine repLine Loop inFile.Close outFile.Close