无法使grep搜索大写字母可靠地工作

时间:2013-04-08 14:08:43

标签: grep

我有几个大文本文件,我想要grep其中的数千条记录,每条记录的1行都有一个字符串,上面写着“1 name userabc.db”或“1 name xy040101.db”或“1例如,命名为abcdfr.db“或”1 name efgh.db“。

字符串“userabc.db”等在此名称中可以包含大写字母,如USERABC.DB或Userabc.db或userAbc.db,在.db文件的名称中的任何位置。

所以我需要能够在每行任何地方的任何记录中搜索并识别这一行,如果有的话。

当我使用“grep'[1 name] [A-Z] ./store.txt”没有双引号时,我发现:

“1名称USERxxx.db”和 “1名称Xy040101.DB”和 “1名Abcdfr.db”和 “1名称EFGH.DB”但不是当大写字母或字母从相关行中.db文件名的第二个或后续字母位置开始时。

底线是我需要能够找到所有具有大写字母或字母的行,当这些字母位于.db文件名称中的任何位置时,不仅仅是在开头或所有字母都是大写的时候。

可以这样做吗?也许用sed或awk做得更好?

谢谢, Bob Perez(bperez@novell.com)

1 个答案:

答案 0 :(得分:0)

您只需要:

grep "1 name .*[A-Z].*" ./store.txt

.*会随时匹配任何字符。