小编Aro*_*lix的帖子

Powershell在文本文件中查找非ASCII字符

我正在尝试找到一种使用 Powershell 脚本执行以下操作的方法。

\n\n
    \n
  1. 对于文本文件中的每一行,检查该行是否包含非 ASCII 字符
  2. \n
  3. 如果行包含非 ASCII 字符,则输出到单独的文件
  4. \n
  5. 如果该行不包含非 ASCII 字符,则跳到下一行
  6. \n
\n\n

我所说的非 ASCII 字符是指非键盘字符,例如重音字符、其他语言的字符等。

\n\n

样本数据

\n\n
 - \xe5\xbc\xa0\xe4\xbc\x9f\n - \xe0\xae\x95\xe0\xaf\x81\xe0\xae\xb4\xe0\xae\xa8\xe0\xaf\x8d\xe0\xae\xa4\xe0\xaf\x88\xe0\xae\x95\xe0\xae\xb3\xe0\xaf\x81\xe0\xae\x95\xe0\xaf\x8d\xe0\xae\x95\xe0\xae\xbe\xe0\xae\xa9 \xe0\xae\xaa\xe0\xaf\x86\xe0\xae\xaf\xe0\xae\xb0\xe0\xaf\x8d\xe0\xae\x95\xe0\xae\xb3\xe0\xaf\x8d\n - \xe6\x97\xa5\xe6\x9c\xac\xe4\xba\xba\xe3\x81\xae\xe6\xb0\x8f\xe5\x90\x8d\n - Full Name\n - L\xc3\xa9na R\xc3\xa9mi\n
Run Code Online (Sandbox Code Playgroud)\n\n

输出数据

\n\n
 - \xe5\xbc\xa0\xe4\xbc\x9f\n - \xe0\xae\x95\xe0\xaf\x81\xe0\xae\xb4\xe0\xae\xa8\xe0\xaf\x8d\xe0\xae\xa4\xe0\xaf\x88\xe0\xae\x95\xe0\xae\xb3\xe0\xaf\x81\xe0\xae\x95\xe0\xaf\x8d\xe0\xae\x95\xe0\xae\xbe\xe0\xae\xa9 \xe0\xae\xaa\xe0\xaf\x86\xe0\xae\xaf\xe0\xae\xb0\xe0\xaf\x8d\xe0\xae\x95\xe0\xae\xb3\xe0\xaf\x8d\n - \xe6\x97\xa5\xe6\x9c\xac\xe4\xba\xba\xe3\x81\xae\xe6\xb0\x8f\xe5\x90\x8d\n - L\xc3\xa9na R\xc3\xa9mi\n
Run Code Online (Sandbox Code Playgroud)\n\n

我在其他线程中发现了正则表达式来删除非 ASCII 字符,但我似乎无法使其工作。

\n\n

请帮忙!

\n\n

** 编辑 **\n感谢大家的帮助!我已经成功地用下面的脚本做了我想做的事情。

\n\n
$nonASCII = "[^\\x00-\\x7F]"\nforeach ($_ in [System.IO.File]::ReadLines($source)){\n    if ($_ -cmatch $nonASCII){\n        write-output $_ | out-File $output -append        \n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n

powershell non-ascii-characters

8
推荐指数
2
解决办法
1万
查看次数

标签 统计

non-ascii-characters ×1

powershell ×1