gpt4 book ai didi

linux - 如何生成与模式不匹配的字符串元素?

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

如果我有

days="1 2 3 4 5 6"

func() {
echo "lSecure1"
echo "lSecure"
echo "lSecure4"
echo "lSecure6"
echo "something else"
}

func | egrep "lSecure[1-6]"

然后我得到

lSecure1
lSecure4
lSecure6

但我想要的是

lSecure2
lSecure3
lSecure5

这是所有没有 lSecure 字符串的日子。

问题

我目前的想法是使用 awk 拆分 $days,然后遍历所有组合。

有没有更好的办法?

请注意,grep -v 颠倒了普通 grep 的意义,并没有解决问题,因为它没有生成所需的字符串。

最佳答案

我通常使用 -f出于类似目的的 grep 标志。 <( ... )代码生成一个包含所有可能性的文件,grep 只选择函数中不存在的那些。

func | grep 'lSecure[1-6]' | grep -v -f- <( for i in $days ; do echo lSecure$i ; done )

或者,您可能更喜欢相反的方式:

for i in $days ; do echo lSecure$i ; done | grep -vf <( func | grep 'lSecure[1-6]' )

关于linux - 如何生成与模式不匹配的字符串元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16670087/

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