我有几个大文本文件,我想要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)
答案 0 :(得分:0)
您只需要:
grep "1 name .*[A-Z].*" ./store.txt
.*
会随时匹配任何字符。