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

时间:2018-03-05 15:21:11

标签: sed

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

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

<firstinitial><surname>@domain.com

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

<firstinitial><first3lettersofsurname>@domain.com

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

非常感谢,

菲尔。

1 个答案:

答案 0 :(得分:1)

使用GNU sed:

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

.:匹配单个字符。除了换行符

之外,它无关紧要      

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

     

\1:重复匹配表达式

中的第一个捕获组(....)      

\2:重复匹配表达式

中的第二个捕获组(@.*)

请参阅:The Stack Overflow Regular Expressions FAQ