我试图在文件的每一行中找到管道(|)字符的数量。我正在使用以下命令来执行此操作。
gc .\test.txt | % { ($_ | select-string "|" -all).matches | measure | select count }
它不计算管道符号。
我也试过
有谁能告诉我如何在电源外壳中逃避管道角色?
如果我正在使用除管道之外的字符串或字符,则命令正常工作。
答案 0 :(得分:5)
反斜杠\
是正则表达式的转义字符。
gc .\test.txt | % { ($_ | select-string "\|" -all).matches | measure | select count }
如果您不确定,可以随时使用[RegEx]::Escape()
:
$pattern = [RegEx]::Escape("|")
gc .\test.txt | % { ($_ | select-string $pattern -all).matches | measure | select count }
否则管道不必在字符串内的PowerShell中进行转义。
答案 1 :(得分:5)
使用-SimpleMatch
Select-String
参数来关闭正则表达式匹配。