gpt4 book ai didi

linux - 匹配 if 条件中的字符串

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:43:36 25 4
gpt4 key购买 nike

我有一个包含以下内容的文件 some_file.txt:

APC000101052019
APC000201052019
APC000301052019
APC000401052019
APC000501052019

现在我尝试将 APC0001 与以下脚本匹配:

#!/bin/bash

cat /home/xxxx/xxxx/some_file.txt|while read -r line
do
if [[ "APC0001" =~ "$line" ]]
then
echo $line
exit 1
fi
done

但我没有得到预期的输出,下面是我得到的输出:

+ cat /home/xxxx/xxxx/some_file.txt
+ read -r line
+ [[ APC0001 =~ APC000101052019]]
+ read -r line
+ [[ APC0001 =~ APC000201052019]]
+ read -r line
+ [[ APC0001 =~ APC000301052019]]
+ read -r line
+ [[ APC0001 =~ APC000401052019]]
+ read -r line
+ [[ APC0001 =~ APC000501052019]]
+ read -r line

我的代码有什么问题吗?

最佳答案

要匹配的模式应该在=~表达式的右边:

if [[ "$line" =~ ^APC0001 ]]
then
echo $line
exit 1
fi

查看 bash manual/conditional constructs 中的 [[...]] 部分.

作为旁注,您在那里不需要cat。只是做:

while read -r line
do
# ...
done < /home/xxxx/xxxx/some_file.txt

关于linux - 匹配 if 条件中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55935876/

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