vimのコマンド文字列置換

:%S / STR1 / STR2 / gの全STR1のSTR2の共通の各行置換!

:S / STR1 / STR2 / gで現在の行にある全てSTR1のSTR2

また基本
:S / STR1 / STR2 /現在の行は、最初のstr1 str2のです

:S / STR1 / STR2 / gで現在の行にある全てSTR1のSTR2

:N、$ S / STR1 / STR2 /各STR1のSTR2の最初の行の最後の行にn行を交換

:N、$ S / STR1 / STR2 / gの別のn行目全てのSTR1 STR2の各行の最後の行に

(nは現在の行から最後の行に発現される場合、Nは、数)

:%S / STR1 / STR2 /(に相当:G / 0009 / S // STR2 /)各STR1のSTR2の最初の行を置き換えます

:%S / STR1 / STR2 / G(に相当:G / 0009 / S // STR2 / g)を全てSTR1のSTR2の各列を置換します

  1. #中間がない区切り文字として/表示される区切り文字として使用することができる
    :S#0009 /#STR2 / #はSTR1 / STR2 IS /現在の行を置き換えます

:%S + / STR11 / STR12 / + / str21 / str22 +(+ /の代わりに使用):/ STR11 / STR12 /交換/ str21 / str22 /

  1. ファイル^ M削除
    問題の説明:Linuxの下で発現キャリッジリターンライン(0A0D)で新しい行のために、Windows環境下では、変更を表現するために、キャリッジリターン(0A)です。Unixの使用上のウィンドウ上にファイルをコピーするときにUnixのシェルまたはプログラムのWindowsファイル(0D)Cをフィルタリングするためにこのように、常に^ Mがあるだろう、改行文字を書いてください。これを実現する方法は2つあります。

(1)コマンドを使用します。猫oldfilename | TR -d "^ V ^ M"> newfilename

(2)は、次のコマンドを使用します。sedの-e "S / ^ V ^ M //" oldfilename> newfilename

なお、両方の方法1及び2において、^ V ^ M、とを参照とCtrl + VのCtrl + M. あなたは手動で入力するのではなく貼り付けする必要があります。

処理のvim:vimの最初のファイルを開き、[ESC]キーを押して、コマンドを入力するために使用:

:%sの/ ^ M ^ V // 
:%sの/ ^ M $ //グラム

上記の方法が役に立たない場合は、正しい解決策は以下のとおりです。

(1)TR -d "\ rを" <old_file_name> new_file_name或者猫oldfilename | TR -d "\ rを"> new_file_name

(2)TR -d "\ 015" <old_file_name> new_file_name或者猫oldfilename | TR -d "\ 015"> new_file_name

文字列A> B

  1. 他の技術を
    利用します。■コマンド文字列を交換します。具体的な用途は次のとおりです。

:S / STR1 / STR2 / STR2 STR1ラインが最初に現れるの文字列を置換します

:文字列をS / STR1 / STR2 / gの行は、文字列STR1のすべての発生を置き換えるSTR2

:。、現在の行の末尾に$ S / STR1 / STR2 / gでstr2の置換テキスト文字列は、すべての文字列のSTR1に現れます

:1、$ sの/ STR1 / STR2 / gで置き換え、すべてのテキストが表示されますstr1の文字列STR2

:G / 0009 / S // STR2 / gの機能上

コマンドは上から見ることができます置き換える:コマンドの終わりにグラム、各発生を置き換えるために検索文字列を告げ、グラムせずに、交換する検索文字列の最初のオカレンスだけを表し、コマンドの先頭にgが、語りました検索文字列の置換操作体を含むすべての行。

文字列を置換するためのコマンド:のVI / vimのを使用することができます。前にのみ、フルテキスト形式の使用を置き換えるために、今日はコマンドを書いて、さまざまながあることを発見し、将来の問い合わせを容易にするため、ここではいくつかの記録、(viのは本当に強力なああは、学ぶことは非常にあります)。
あるいは
  :S /ビビアン/空/現在の行がビビアンスカイで置き換える
  :S /ビビアン/空/ Gは、現在の行のすべてのビビアン空である
  :nは、$ S /ビビアン/スカイ/最後の行にn行を交換各ビビアン空の最初の行
  :N、$ S /ビビアン/全天ビビアンの各行の最後の行にn行を交換スカイ/ G
  nは数であり、nがある場合、現在の行から始まります。最後の行
  :%S /ビビアン/空/ ( に相当:G /ビビアン/ S //空 /) 各ビビアン空の最初の行を置き換える
  :%S /ビビアン/へスカイ/ G(当量:G /全てビビアン空の各列を置換//空/ gのビビアン/ s)が
  デリミタ#として使用することができ、それによって中間体は、区切り文字としてではない/現れる
  S#ヴィヴィアン/#空/: #は現在のラインAを交換しますヴィヴィアン/は/スカイです
  :S%+ / oradataに/ apras / + /ユーザー01 / apras1 +(+ /交換するために使用):/ oradataに/ apras /置き換え/ユーザー01 / apras1 /
  * ****

  ^ M削除テキストの
  問題の説明:交換を表現ウィンドウ(0A0D)下ラインフィード、キャリッジリターンラインのために、キャリッジは、Linux(0A)であるが表現されます。UNIXでのウィンドウ上にファイルをコピーするときにこのように、常に^ M.フィルタリングウィンドウでシェルまたはプログラムのUNIXファイル(0D)Cを改行の使用を記述してくださいがあるでしょう。
  •コマンドの使用方法:CATのファイル名1を| TRは"^ V ^ M"> newfileコマンドを-d;
  •コマンドを使用する:sedの-e "S / ^ V ^ M //"ファイル名> OUTPUTFILENAMEを。なお、両方の方法1及び2において、^ V ^ M、とを参照とCtrl + VのCtrl + M. あなたは手動で入力するのではなく貼り付けする必要があります。
  ・VIでの処理:viのは、最初のファイルを開くために使用した後、ESCキーを押して、コマンドを入力している:%sの/ ^ V ^ M //。
  ・:%S / ^ M $ // gを
  無駄上記方法であれば、正しい解である:
  ・TRは、 "R&LT" DESTを-d
  ・TRは-d DEST」5" 。
  ・ストリングA> B
  、さらに
  使用:Sコマンド置換文字列を達成するために。特定の用途は、次のとおりです
  :S / STR1 / STR2 /文字列ラインはSTR2 STR1最初に出現して交換する
  :S / STR1 / STR2 / gのSTR2 STR1に置き換えられるためにラインを持つすべての文字列を表示さ
  :。、$現在の行の最後にS / STR1 / STR2 / gでstr2の置換テキスト文字列は、すべての文字列が表示されSTR1
  :1、$ sの/ STR1 / STR2 / gでSTR1に現れるすべてのテキスト文字列を置き換えるSTR2に使用されます
  :G / 0009 / S // STR2 / gの機能上
  、上方から見ることができるコマンドを交換:コマンドの終わりにG、検索文字列は、それぞれの出現を置き換える表し; Gせず、唯一の検索表す
  文字列を初めての交換、コマンドの先頭にGは、検索文字列の交換作業を含むすべての行の身体に語りました。

おすすめ

転載: blog.51cto.com/2624035/2468110
おすすめ