正则表达式从混合用户:密码和电子邮件:密码中提取用户:密码

正则表达式从混合用户:密码和电子邮件:密码中提取用户:密码

如果我有一个包含如下行的文件

user1:pass1
[email protected]:pass2

我想像这样提取它

user1:pass1
user2:pass2

答案1

使用sed,您可以使用以下正则表达式:

sed -e "s/\(.*\)@.*:\(.*\)/\1:\2/g" input.txt

这将生成所需的输出。

答案2

看起来“模式”是@domain从包含该组件的任何行中删除该组件。在具有sed此命令的系统上,将对名为的文件执行该操作file

sed 's/@[^:]*//' file

使用您的示例作为源的输出

user1:pass1
user2:pass2

相关内容