我正在尝试使用 Powershell 脚本实现以下目标:
- 对于文本文件中的每一行,检查该行是否包含非 ASCII 字符
- 如果该行包含非 ASCII 字符,则将其输出到单独的文件中
- 如果该行不包含非 ASCII 字符,则跳过该行并继续执行下一行
所谓的“非 ASCII 字符”是指非键盘字符,例如带重音符号的字符、来自其他语言的字符等。
示例数据
- 张伟
- குழந்தைகளுக்கான பெயர்கள்
- 日本人の氏名
- Full Name
- Léna Rémi
输出数据
- 张伟
- குழந்தைகளுக்கான பெயர்கள்
- 日本人の氏名
- Léna Rémi
我在其他帖子中找到了用于删除非ASCII字符的正则表达式,但似乎无法使其工作。
请帮忙!
** 编辑 ** 感谢大家的帮助!我已经使用下面的脚本完成了想要的操作。
$nonASCII = "[^\x00-\x7F]"
foreach ($_ in [System.IO.File]::ReadLines($source)){
if ($_ -cmatch $nonASCII){
write-output $_ | out-File $output -append
}
}
-match '[^0-9a-z]'
。另外,应该有一些指定Unicode字符类的方法,但我不记得了... [害羞] - Lee_Dailey