我有一个像这样的电子邮件列表:
aaa@you1.com
abc@you3.com
def@you4.com
我需要删除@符号前面的所有字符。有使用Sed执行此操作的方法吗?
最佳答案
像这样:
$ sed 's/[^@]*//' file
@you1.com
@you3.com
@you4.com
sed的基本语法为
sed 's/search/replace/' file
。这会在search
中查找file
并将其替换为replace
文本。如果要在该行的所有匹配项中执行此替换,则可以使用sed 's/search/replace/g' file
。在这种情况下,我们正在寻找模式
[^@]*
,这意味着:所有不是@
的字符。这将与行的开头匹配,直到(排除)找到@
。替换为//
表示此字符串将不替换任何内容->删除。要进行就地编辑,只需添加
-i.bak
。这样,您的原始文件将被替换,但是备份file.bak
也将被创建:sed -i.bak 's/[^@]*//' file
关于linux - 删除一行的第一部分,直到找到字符@,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25788987/