我有一个问题,需要编写grep命令,它只能匹配那些仅由大写字母组成的单词所在的行。
例如,我有一个文件:file1.txt
Abc AAA
ADFSD
F
AAAAx
输出应该是:
Abc AAA
ADFSD
F
感谢任何建议。
您可以直接使用:
grep -E '\b[[:upper:]]+\b' file1.txt
也就是说,寻找仅由大写字母组成的完整单词。
这个egrep应该可行:
egrep '\b[A-Z]+\b' file
file
包含带有下划线的大写单词(例如HELLO_WORLD
)时,这将无法正常工作。 - alhelalegrep '\b[A-Z]+\b' file1.txt
结果是
Abc AAA
ADFSD
F
[^ ]*
似乎允许混合大小写? - tripleeegrep -w '\([_]*[A-Z]\+\)\+' file1.txt;
。 - Alex Walczakgrep -w '[_]*[A-Z]\+[A-Z_]*' file1.txt
) - Alex Walczak\p{Lu}
而不是[A-Z]
:grep -P '\b\p{Lu}+\b' file
对于
LONDON
Paris
MÜNCHEN Berlin
LONDON
MÜNCHEN Berlin
[A-Z]
扩展到重音字母,但是使用\p{Lu}
,你不需要处理像"自2017年6月以来,大写字母ẞ被接受作为全大写风格的替代品"这样的事情。egrep
正确地显示并触发了重音字符。 - Skippy le Grand Gourougrep -e '[[:upper:]]' file1.txt
grep -oP '\b[A-Z0-9_]+\b' file1.txt
HELLO
, NUMBER10
, RLIMIT_DATA
)。eDw
。在 file1.txt 中搜索 '\<[A-Z]*>'