powershell 为什么用select-line [duplicate]找不到两个字符的行

bfnvny8b  于 2023-01-13  发布在  Shell
关注(0)|答案(1)|浏览(73)
    • 此问题在此处已有答案**:

Powershell - Strange WSL output string encoding(4个答案)
19天前关闭。
要从命令wsl--help中找到每一行带有"-"的内容,下面这些行可以

wsl --help | Select-String -Pattern "-"
 wsl --help | Select-String "-"

现在我尝试更复杂的模式:"--"

wsl --help | Select-String -Pattern "--"
  wsl --help | Select-String "--"

这个模式虽然有行,但是没有返回,为什么?
更新日期:

wsl --help | Select-String "--" -SimpleMatch

也不行

62o28rlo

62o28rlo1#

是的,wsl输出utf16le或者unicode,甚至字节都是空的。

wsl --help | select -first 1 | format-hex

   Label: String (System.String) <09F5DDB6>

          Offset Bytes                                           Ascii
                 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
          ------ ----------------------------------------------- -----
0000000000000000 43 00 6F 00 70 00 79 00 72 00 69 00 67 00 68 00 C o p y r i g h
0000000000000010 74 00 20 00 28 00 63 00 29 00 20 00 4D 00 69 00 t   ( c )   M i
0000000000000020 63 00 72 00 6F 00 73 00 6F 00 66 00 74 00 20 00 c r o s o f t
0000000000000030 43 00 6F 00 72 00 70 00 6F 00 72 00 61 00 74 00 C o r p o r a t
0000000000000040 69 00 6F 00 6E 00 2E 00 20 00 41 00 6C 00 6C 00 i o n .   A l l
0000000000000050 20 00 72 00 69 00 67 00 68 00 74 00 73 00 20 00   r i g h t s
0000000000000060 72 00 65 00 73 00 65 00 72 00 76 00 65 00 64 00 r e s e r v e d
0000000000000070 2E 00                                           .

“0”表示空。在powershell 7中,匹配项会突出显示。

wsl --help | Select-String -Pattern "-`0-" | select -first 1

    --exec, -e <CommandLine>

相关问题