我是新手,正在学习使用bash和grep。
grep ^[a-z] file.txt
将显示所有以小写字母开头的行
grep [a-z] file.txt
将显示所有包含小写字母的行
无法找到如何显示所有小写字母的行,请问有人可以帮忙吗?
egrep
中使用锚定符来创建正则表达式:egrep '^[[:lower:]]+$' file
这个 egrep
只能找到那些行中 仅包含小写字母(甚至空格都不允许)的内容。
egrep '^[[:lower:]]+$' file
,因为我发现 [a-z]
在多语言系统上可能会失败。 - Jotne这将匹配并排除包含除了 a-z
以外的其他内容的行。
cat file.txt | grep -v '[^[:lower:]]'
如果您需要允许符号(例如此示例允许 !
, +
, ,
):
cat file.txt | grep -v '[^[:lower:]!+,]'
grep -v '[^[:lower:]]' file
。 - Jotne[a-z]
没有任何问题,除非你想匹配一些在某些语言环境中被认为是小写字母的其他字符。 - Unknown[a-z]
在多语言系统上可能会失败。即使您要求小写字母,它也可能会给出大写字母。请在Google上搜索此问题。使用 [:lower:]
。它应该适用于所有情况。 - Jotne