テキストファイルの文字置換に関する質問

テキストファイルの文字置換に関する質問

したがって、コロンで区切られた形式で解析されたいくつかのデータがあります。

username:[email protected]:password:salt

時には、ユーザー名/saltにコロン(:)を含めることができます。区切り文字を別の文字に置き換えたいので、データは次のようになります。

username', '[email protected]', 'password', 'salt

私は次のコマンドを使用しています:

sed "s/:/'/" filename.txt > newfile.txt

しかし、ユーザー名/塩フィールドでコロンをスキップする方法は思い出されません。どんなアイデアがありますか?

答え1

文書の内容:

ユーザー名:[Eメール保護]:パスワード:塩
ユーザー名:[Eメール保護]:パスワード:塩
ユーザー名:[Eメール保護]:パスワード:sa:lt
ユーザー名:[Eメール保護]:パスワード:sa:lt

GNU sedの使用:

sed -E "s/(.*):([^:]*@[^:]*):([^:]*):(.*)/\1', '\2', '\3', '\4/" file

出力:

ユーザー名」、「[Eメール保護]'、'パスワード'、'塩
ユーザー名」、「[Eメール保護]'、'パスワード'、'塩
ユーザー名」、「[Eメール保護]', 'パスワード', 'sa:lt
ユーザー名」、「[Eメール保護]', 'パスワード', 'sa:lt

関連情報