gpt4 book ai didi

Linux shell 脚本正则表达式匹配

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:38:27 24 4
gpt4 key购买 nike

我有一个文本文件。我想获取以特定格式开头的行。我只想获取具有 x/x/x 格式的行。 x 是一个数字。但是这个正则表达式不起作用。它总是不匹配:

while read line           
do
regex="\d+\/\d+\/\d+"
if [[ ${line} =~ ${regex} ]]; then

echo ${line}

else

echo "no match : ${line}"

fi
done <${textFileName}

文件是:

enter image description here

最佳答案

如果可以使用更好的工具,请不要使用 bash:

grep -E '^[[:digit:]]+/[[:digit:]]+/[[:digit:]]+' "${textFileName}"

但是如果你必须使用 bash:

while IFS= read -r line
do
if [[ "$line}" =~ ^[[:digit:]]+/[[:digit:]]+/[[:digit:]]+ ]]; then
echo -- "$line"
else
echo "no match: $line"
fi
done < "$textFileName"

\d 不是有效的 regex(3)

关于Linux shell 脚本正则表达式匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45745970/

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