gpt4 book ai didi

regex - sed:从最后一次出现的 "-"替换到 EOL

转载 作者:行者123 更新时间:2023-12-01 10:27:45 24 4
gpt4 key购买 nike

我的问题

我有一个包含项目的文件,每行一个。该项目至少包含一个破折号,我想删除最后一个破折号和后面的单词。例如:

item asdkalqndla-asdnkfsv-324we-blueray
item asda-vbght564e-dfg-redapple
item gefdsc-fgy-543-5trr-floatingvanilla

应该给:

item asdkalqndla-asdnkfsv-324we
item asda-vbght564e-dfg
item gefdsc-fgy-543-5trr

我尝试了什么

sed 's/\-.*$//' lines.txt

哪个给

item asdkalqndla
item asda
item gefdsc

因为正则表达式是贪婪的,并且会从第一个破折号开始消耗所有内容。

我的问题

如何在 EOL 之前删除字符串中最后一个 - 的所有字符?

最佳答案

使用awk:

$ awk '{sub(/-[^-]*$/,""); print}' file
item asdkalqndla-asdnkfsv-324we
item asda-vbght564e-dfg
item gefdsc-fgy-543-5trr

关于regex - sed:从最后一次出现的 "-"替换到 EOL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47251459/

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