Powershell - хватай слово и испускай его (или что-то) - PullRequest
2 голосов
/ 02 июня 2011

Мне нужно прочитать файл и найти в нем слово.Файл генерируется новым каждый раз, когда запускается мой скрипт.Файл содержит много строк, но всегда есть одна уникальная строка, которая имеет следующее:

INSTANCE i-cbea4fa5 ami-c3e4dda  ec2-........

Значения «INSTANCE» и «ami-c3e4dda» всегда будут одинаковыми в файле.Второй элемент, «i-cbea4fa5», будет меняться, но всегда будет находиться в одном и том же месте в пределах этой строки и всегда будет начинаться с «i -».

Мне нужно найти и затем использовать «i-cbea4fa5 "значение в скрипте.

1) как я могу извлечь только это значение" i-cbea4fa5 "?2) однажды найдя, как лучше его использовать?

Спасибо, Дэниел Уильямс

Ответы [ 2 ]

1 голос
/ 02 июня 2011

Используйте регулярное выражение, затем извлеките заданную часть полученной строки.Пример команды (есть много способов сделать это, но командлет Select-String необходим) ниже.Я предположил, что часть «i -...» всегда состоит из одного слова (т.е. без белых символов).Также, если найдено несколько значений, возвращается первое.

(Select-String -path file.txt -pattern "^INSTANCE i-.+ ami-c3e4dda" -AllMatches | % { $_.Matches } | % { $_.Value })[0].Split()[1]
0 голосов
/ 02 июня 2011
((select-string <filename> -pattern "^INSTANCE \S+ ami-c3e4dda" -list).line).substring(9,10)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...