gpt4 book ai didi

regex - 如何使用 bash 和正则表达式排除单词列表中的单词?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:56:53 26 4
gpt4 key购买 nike

使用 bash 我有类似的东西:

MYLIST='Word1.c Word2.c Word3.xy.c Word4.cpp Word5.xy.cpp'

实际上,该列表可以包含数百个不同顺序的不同单词。我只是想保持简单。

我将如何更改列表以排除以 .xy.c 结尾的单词

如果可能的话,我更愿意使用正则表达式。

谢谢。

最佳答案

您可以将 Bash 模式规则用作类似正则表达式的语言。特别是,Bash 在应用模式时特别偏好 $@ 和 $* - 它将它们视为单词的列表,并将模式应用于列表中的每个项目。

因此,您需要编写一个函数(因此您将在 $@ 或 $* 中有一个参数列表),以便您可以在列表上应用模式。您将使用 %% 模式,它表示“匹配并删除最长的可能模式”。这是我的看法:

$ strip_xy_cpp() {
> RESULT="${*%%*.xy.cpp}"
> echo "$RESULT"
> }

$ echo $MYLIST
Word1.c Word2.c Word3.xy.c Word4.cpp Word5.xy.cpp

$ NEWLIST=$( strip_xy_cpp $MYLIST )

$ echo $NEWLIST
Word1.c Word2.c Word3.xy.c Word4.cpp

关于regex - 如何使用 bash 和正则表达式排除单词列表中的单词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35025914/

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