gpt4 book ai didi

regex - bash 比较字符串与字符串列表

转载 作者:行者123 更新时间:2023-11-29 09:10:28 39 4
gpt4 key购买 nike

假设我在 bash 中有以下代码:

#!/bin/bash

bad_fruit=( apple banana kiwi )
for fname in `ls`
do
# want to check if fname contains one of the bad_fruit
is_bad_fruit=??? # <------- fix this line
if [ is_bad_fruit ]
then
echo "$fname contains bad fruit in its name"
else
echo "$fname is ok"
fi
done

如何修复 is_bad_fruit 以便在 fname 包含 bad_fruit 字符串之一时为真?

最佳答案

试试下面的代码:

#!/bin/bash

bad_fruit=( apple banana kiwi )
re="$(printf '%s\n' "${bad_fruit[@]}" | paste -sd '|')"

for fname in *; do
# want to check if fname contains one of the bad_fruit
if [[ $fname =~ $re ]]; then
echo "$fname contains bad fruit in its name"
else
echo "$fname is ok"
fi
done

照顾useless use of ls

ls 是一种用于交互式查看文件信息的工具。它的输出是为人类格式化的,会导致脚本中的错误。使用 glob 或 find 代替。明白为什么:http://mywiki.wooledge.org/ParsingLs

关于regex - bash 比较字符串与字符串列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12768265/

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