我想在grep命令中使用正则表达式匹配以下字符串。
文件名为test.txt
,
Unknown Unknown
Jessica Patiño
Althea Dubravsky 45622
Monique Outlaw 49473
April Zwearcan 45758
Tania Horne 45467
我想从上面的行列表中匹配仅包含特殊字符的行;我确切需要的是'JessicaPatiño',它包含一个非ASCII字符。
我用过,
grep '[^0-9a-zA-Z]' test.txt
但它会返回所有行。
答案 0 :(得分:2)
以下命令应该返回您想要的行:
grep -v '^[0-9a-zA-Z ]*$' test.txt
[0-9a-zA-Z ]
匹配空格或任何字母数字字符。^
预先添加模式,并将$
锚点字符串附加到行的开头和结尾,以便模式仅匹配包含仅所需的字符。-v
或--invert-match
选项会反转匹配感,即选择不匹配的行。答案 1 :(得分:1)
提供的答案应适用于给出的示例文本。但是,你可能会遇到名字中带有连字符或撇号的人等。要搜索所有非ASCII字符,这应该可以解决问题:
@interface ACustomView : UIView
{
float chartWidth, chartHeight;
}
@property (nonatomic, readwrite) float chartWidth, chartHeight;
@end
-P启用“Perl”模式并允许使用字符代码搜索。 \ x00- \ x1F是控制字符,\ x7F- \ xFF是126以上的所有内容。
答案 2 :(得分:0)