我想删除文件中包含3个或更多连续大写字符的行。
输入:
ABBOTT FLORIST MIAMI BEACH
Abbott Lake Loop
Abbott Philip DDS
输出:
Abbot Lake Loop
我尝试了sed 's/[A-Z]{3}/g' infile
,但没有得到想要的结果。有什么帮助吗?
使用GNU sed的一种方法:
sed -r '/[A-Z]{3,}/d' file
grep也可以使用:
grep -vE "[A-Z]{3,}" file
这里是另一个使用awk
:的替代方案
$ awk '/[A-Z]{3,}/{next}1' file
Abbott Lake Loop
sed -n '/[A-Z]{3,}/ p' infile
只打印至少有3个大写字母的行
你的sed(sed 's/[A-Z]{3}/g' infile
(是一个部分sed动作
- 创建某个内容的替换,因此每行输入至少打印一个空行
- 您选择一个大写字符,后跟
{3}
,缺少{
之前的转义 - 你选择了一个模式,但没有给出任何替换结果。
s/selectpattern/resultpattern/option