在Linux中从文本文件中删除字符

问题描述 投票:1回答:1

我刚刚从外面看了一年多,我刚加入了SO。我最终加入的原因是因为我可以提供一些帮助:)

我有一个包含电子邮件地址列表的文本文件。电子邮件地址采用以下格式:

<firstinitial><surname>@domain.com

我想编辑文本文件,以便输出给我:

<firstinitial><first3lettersofsurname>@domain.com

我尝试过使用sed,但似乎可以得到这个。任何帮助将非常感激。

非常感谢,

菲尔。

sed
1个回答
1
投票

使用GNU sed:

sed -E 's/(....).*(@.*)/\1\2/' file

.:匹配单个字符。除了换行符之外,它的性质无关紧要

*:匹配前一场比赛零次或多次

\1:重复第一个捕获组(....)in匹配的表达式

\2:重复第二个捕获组(@.*)in匹配的表达式


见:The Stack Overflow Regular Expressions FAQ

© www.soinside.com 2019 - 2024. All rights reserved.