gpt4 book ai didi

linux - 使用 grep 脚本循环

转载 作者:太空宇宙 更新时间:2023-11-04 09:05:14 26 4
gpt4 key购买 nike

我将此作为一个新问题提出,因为人们似乎并不理解我原来的问题。

我可以弄清楚如何查找一个单词是否以大写字母开头并后跟 9 个字母的代码:

echo "word" | grep -Eo '^[A-Z][[:alpha:]]{8}'

这就是我应该做的第 1 部分。我的实际脚本应该遍历作为第一个也是唯一一个参数给出的文本文件中的每个单词,然后检查这些单词是否以大写字母开头且长度为 9 个字母。

我试过:

cat textfile | grep -Eo '^[A-Z][[:alpha:]]{8}'

while read p
do echo $p | grep -Eo '^[A-Z][[:alpha:]]{8}'
done < $1

没用。

虽然:

cat randomtext.txt 

输出:

The loud Brown Cow jumped over the White Moon. November October tesTer Abcdefgh Abcdefgha

所以它正确地输出了文件 randomtext.txt 中的所有单词

那为什么不

cat randomtext.txt | grep -Eo '^[A-Z][[:alpha:]]{8}'

工作?

最佳答案

问题出在 anchor 上。您的模式以 ^ 开头,它匹配一行的开头,但您想要返回的单词位于一行的中间。您可以将其替换为 \b 以匹配单词边界。

关于linux - 使用 grep 脚本循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13018294/

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