gpt4 book ai didi

linux - 如何在@string 后截一行并添加反斜杠

转载 作者:太空宇宙 更新时间:2023-11-04 09:37:10 24 4
gpt4 key购买 nike

我试图在排除@字符串后进行剪切,如果行不包含@符号,则在行尾放置/斜线而不触及。

在文件中查找;

path = /aaa/bbb/ccc.com/user/dddd/user@yahoo.com/
path = /aaa/bbb/ccc.com/user/dddd/user@yahoo.co.uk/
path = /aaa/bbb/ccc.com/user/dddd/user2@yahoo.com/
path = /aaa/bbb/ccc.com/user/dddd/user@hotmail.co.uk/
path = /aaa/bbb/ccc.com/user/dddd/user@abc.xxx.co.uk/
path = /aaa/bbb/ccc.com/user/dddd/user5/

我想转换成什么样的;

path = /aaa/bbb/ccc.com/user/dddd/user@yahoo/
path = /aaa/bbb/ccc.com/user/dddd/user@yahoo2/
path = /aaa/bbb/ccc.com/user/dddd/user2@yahoo/
path = /aaa/bbb/ccc.com/user/dddd/user@hotmail/
path = /aaa/bbb/ccc.com/user/dddd/user@abc/
path = /aaa/bbb/ccc.com/user/dddd/user5/

最佳答案

sed '/@/ s|\(@[^.]*\).*$|\1/|' YourFile

从末尾开始而不是@(posix版本)

说明

  • /@/ 仅处理内部带有 @ 的行(其他保持原样)。
  • 使用 sed 的 s 操作(替换)。由于 / 在 pattern 中,我在这里使用另一个分隔符 |
  • \(@[^.]*\) 表示第一组字符以 @ 开始,直到第一个点(事实上,我可以接受所有后续附加字符但不是一个点)。如果没有点,则取该行后面的所有内容。
  • .*$ 表示先例模式(我们组)之后的任何字符,直到结束 $.
  • 这被 1 组的内容替换(这里只有 1 个组) \1 后跟 /

关于linux - 如何在@string 后截一行并添加反斜杠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25384139/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com