select 字符串命令中 selection 两倍的原因

Reason for twice the selection in a select-string command

这个脚本,

$lt="_cdbc ","_dié","_diéq ","_cost ","_coste "
foreach($x in $lt){sls -path GA0.txt -pattern $x -CaseSensitive >> GA1.txt}

正在处理文件GA0的以下内容(状态栏中的编码标签:utf-8),

1 _cdbc \> contenu  diaphane\
2 _dié \> cable deux\
3 _diéq \> vingt \
4 _cost \> pin parasol\
5 _coste \> thyme\

在 GA1 中产生以下结果(状态栏中的结果编码标签,无论初始标签是什么(utf-8 或 utf-16 Le):utf-16 Le),

1                                        <emty line>
2  GA0.txt:1:_cdbc \> contenu  diaphane\
3                                        <emty line>
4                                        <emty line>
5                                        <emty line>
6  GA0.txt:2:_dié \> cable deux\
7  GA0.txt:3:_diéq \> vingt \
8                                        <emty line>
9                                        <emty line>
10                                       <emty line>
11 GA0.txt:3:_diéq \> vingt \
12                                       <emty line>
13                                       <emty line>
14                                       <emty line>
15 GA0.txt:4:_cost \> pin parasol\
16                                       <emty line>
17                                       <emty line>
18                                       <emty line>
19 GA0.txt:5:_coste \> thyme\

1/ 很明显,但不确定第3行(第7行和第11行)两次列出的问题是重音字母(é)引起的:例如,没有错误模式 "cost/coste"。我尝试添加参数规范 -encoding utf8,但没有任何区别。有人知道该怎么做才能做到这一点吗?
2 /除了有问题的行之前,GA1中结果行之间的第一个空行和一系列3个空行的原因是什么?如何修改代码,使列表没有任何空行?

>>| out-file -append 添加额外的格式(格式自定义)。请尝试 | add-content"_dié" 后面没有 space,所以它匹配两行。由于 "_cost " 末尾有 space,因此它只匹配一行。

你也可以一次完成所有的模式:

search-string $lt da0.txt

对于整个单词匹配,您需要一些额外的正则表达式:Select-String -pattern wholeword