gpt4 book ai didi

linux sed,如何删除剩下的字?

转载 作者:太空狗 更新时间:2023-10-29 11:25:10 25 4
gpt4 key购买 nike

假设我有text.txt:

342423423423 - 'namefile.jpg' saved (2423423kb/2423423kb)

我可以用

sed 's/^.*- //' text.txt

输出将是:

'namefile.jpg' saved (2423423kb/2423423kb)

它将删除 namefile.jpg 开头的文本,但如果我还想删除其余部分怎么办?我希望输出是这样的:

'namefile.jpg'

我应该使用什么 sed 模式?请注意,在“namefile.jpg”之后的文本并不总是相同的。它会不时发生变化。

最佳答案

您可以使用捕获组。

sed 's/^.*- \([^ ]\+\).*/\1/' text.txt

sed 's/^.*- //;s/ .*//' file
  • ^.*- 正则表达式匹配从开始到 - 的所有字符。第一个命令将所有匹配字符替换为空字符串。

  • .* 现在,根据结果字符串,此正则表达式将匹配从第一个空格到最后一个空格的所有字符。用空字符串替换这些字符将为您提供所需的输出。

例子:

$ echo "342423423423 - 'namefile.jpg' saved (2423423kb/2423423kb" | sed 's/^.*- \([^ ]\+\).*/\1/'
'namefile.jpg'
$ echo "342423423423 - 'namefile.jpg' saved (2423423kb/2423423kb" | sed 's/^.*- //;s/ .*//'
'namefile.jpg'

关于linux sed,如何删除剩下的字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28018180/

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