私はいくつかのテストを実行し、自分が定期的に使用することを思い出しました。
source
だから私がやっている多くのことに共通して使われるいくつかのファイルがあります。 「=」ペアの後のすべての項目を削除してテンプレートを作成しようとしますName=Value
。つまり、sedでファイルを編集し、次の代わり
Foo=Bar
に次のようにします。
Foo=
これを行うためにRegExpステートメントを生成しようとしましたが、それ以降の値のみを削除しましたが、複数ではなく単一に一致する値を=
生成できないようです(たとえば、一致が一致しません)。=
=
=====
これは、投稿することを決める前に私が得た最も遠い情報です。s/={1}.*/=/g
誰でも洞察力を提供できますか?=
これは私たちのチームがよく使用するコメント形式であり、読みやすくするためにデータ入力セクションを分割するために使用されるため、複数の項目を削除したくありません。
いくつかのテスト値: -
NameOfServer=Foo
`#`==========
`#` UserData
`#`==========
理想的には、最初の行の「= Foo」と一致させたいのですが、コメントアウトされた行の複数の「=」は削除しないことをお勧めします。
注:私はSed(v4.2)を使用します(関連性がある場合は、「パターンの検索と置換」のためにVimでSedを使用することもできます)。
ベストアンサー1
[a-zA-Z_]
変数は、1文字の後に0個以上の文字が続く文字列です[a-zA-Z_0-9]
(POSIX / Cロケールで)。
aの直後にこれらの文字列を一致させ、=
残りの行を削除できます。
sed 's/\([a-zA-Z_][a-zA-Z_0-9]*=\).*/\1/' file
あなたのサンプルファイルでは、これが生成されます
NameOfServer=
`#`==========
`#` UserData
`#`==========