Powershell Select-String -Точное соответствие?

#powershell

Вопрос:

Я пытаюсь найти способ, используя Select-String и поиск точного совпадения в файле, и получить все строки, содержащие это точное совпадение, в точной колонке. Пример фрагмента из файла данных:

 08/25/2021 11:56:03 muzi.puzi 123 Bla
08/25/2021 19:56:03 bla.bla 1234 Bla
08/25/2021 19:56:03 abc.def 54 bla123
 
 Function Get_User_Dates_From_DBFile ([int] $Num, [string] $Db_File){
    #Rereive all the dates in DataFile BiometricNum has signed on or off
    $Dates = gc $Db_File | Select-String -Pattern "^$BioMetric_Num" 
    Return ($Date | Sort | Get-Unique) 
}

Get_User_Dates_From_DBFile 123 $Db_file
 

Это даст мне все три строки, я хочу убедиться, что он не поймает ничего больше (пример 1234), а также убедиться, что он не поймает 123 в конце последней строки, так как nubers ссылается только на 4-й столбец

Любой совет был бы замечательным, спасибо

Комментарии:

1. Определите: » точное совпадение «. Я предполагаю, что вы имеете в виду целое слово, связанное со словом «баундери «: "b$numb"

2. Это именно то, что я имею в виду, спасибо!

Ответ №1:

Я не уверен, почему вы используете знак крыши перед переменной…
Но этот шаблон будет неверным 123

 '08/25/2021 11:56:03 muzi.puzi 123 Bla
08/25/2021 19:56:03 bla.bla 1234 Bla
08/25/2021 19:56:03 abc.def 54 bla123' > file.txt

$BioMetric_Num = '123'

Get-Content .file.txt | Select-String -Pattern " $BioMetric_Num "
 

Таким образом, в вашем случае ваша текущая функция должна быть в состоянии правильно работать с использованием

Get_User_Dates_From_DBFile ' 123 ' $Db_file