特定の単語の後のすべてのスペースを削除するために正規表現を使用しようとしています。私が使用するエディタはNotepad ++ですが、Unixも利用できます。
この場合、正規表現\ VALUESを実行してVALUESを強調表示できますが、それ以降のスペースを削除する方法がわかりません。
ベストアンサー1
使用sed
:
$ sed 's/VALUES[[:blank:]]*/VALUES/g' input >output
これにより、VALUES
後続の空白文字(スペースまたはタブ)が必要に応じて置き換えられますVALUES
。つまり、スペースは削除されます。
VALUES
完全な単語に一致させることが重要な場合、whateverVALUES
つまりいいえ一致させてから、前に単語境界パターン(の先頭)を挿入しますVALUES
。
$ sed 's/[[:<:]]VALUES[[:blank:]]*/VALUES/g' input >output
この回答の残りの部分でこれを維持します。
より複雑な値の場合は、VALUES
値を2回入力する必要がないのが便利です。
$ sed 's/\(VALUES\)[[:blank:]]*/\1/g' input >output
これによりVALUES
パターンが保存され、交換時に再利用されます。
パターンがVALUES
シェル変数に保存されている場合$values
:
$ sed "s/\($values\)[[:blank:]]*/\1/g" input >output
これはほぼVimエディタに直接送信されます。
:%s/\(VALUES\)[[:blank:]]*/\1/
私はNotepad ++を使ったことがないので、どのように使用するかを推測するだけです。明らかにCtrl+を押し、H検索/検索とパターンの変更を入力できるはずです。
検索モード可能(VALUES)[[:blank:]]*
パターンを交換するとき可能はい$1
。これをテストする方法はありません。申し訳ありません。それでも機能しない場合は、[[:blank:]]
試してみてください[\t ]
。