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