sed を使用して、文字列を一致する文字列の情報で置き換えます。

sed を使用して、文字列を一致する文字列の情報で置き換えます。

私のテキストファイルに特定の形式の文字列があります。文字列の単語部分を置き換えて、数値識別子を保持したいと思います。たとえば、似たような文字列L2_name1がありますが、L12_name6同じ識別子を持つ名前がたくさんあります。 name1 = JohnMSmith、name6 = JohnMSmithinson。

似たようなものを使いたいのですが、sed 's/L2_name1/L2_new_name/g' file.csv正規表現を使うので、次のようになります。

sed -E 's/L[0-9]{1,2}_name1/{same leading monicker found in the matching part}_new_name/g' file.csv

ベストアンサー1

覚えたい内容をコマンドの一致部分にかっこ内に入れてから、\N数字 N を使って記憶した内容を記憶し、それを一致部分の N 番目の括弧セットに置き換えればよい。

sed -E 's/(L[0-9]{1,2})_name([0-9]+)/\1_new_name\2/g' file.csv

よりsed マニュアル詳細を確認してください。

編集:拡張正規表現を()[]{}+指定したので、さまざまな特殊文字を使用できることを指摘する必要があります。-Eマニュアルは再び完全な詳細を提供します。

おすすめ記事