Нужна помощь в интерпретации этой команды sed - PullRequest
3 голосов
/ 04 февраля 2010

Я просматриваю скрипт Oracle, который я нашел в сети , но он запускает команду sed для фильтрации результатов из файла трассировки. Я запускаю Oracle на сервере Windows, поэтому команда sed не распознается.

host sed -n '/scattered/s/.*p3=//p' &Trace_Name | sort -n | tail -1

Я пытался прочитать онлайн-документацию , но все еще не уверен, как интерпретировать то, что пытается отфильтровать эта команда. Кто-нибудь будет так любезен, чтобы помочь мне интерпретировать то, что эта команда пытается отфильтровать? Или, еще лучше, то, что я могу запустить из командной строки Windows для достижения того же результата.

Спасибо!

Ответы [ 4 ]

5 голосов
/ 04 февраля 2010

Он говорит: «в строках, содержащих« разбросанный », заменить ноль или более любого символа, за которым следует« p3 = », ничего (удалить его, другими словами) и вывести результат» (-n говорит, что не печатать строк, если нет явной команды печати).

Для этого примера введите:

abc organized p3=123
def scattered p3=456
ghi ordered p3=789

Вывод будет:

456
2 голосов
/ 04 февраля 2010

Команда sed ищет в файле строки, соответствующие шаблону.Опция "-n" будет подавлять вывод, который явно не печатается.Буква «p» в конце говорит, что нужно напечатать строки, которые соответствуют предыдущему шаблону.

sort -n выполняет числовую сортировку.

tail -1 печатает только последнюю строку.

Итак, похоже, что поиск разбросанных чтений с диска и вывод строки с наибольшим значением.

Я думаю, что шаблон регулярного выражения исключает все, вплоть до "p3 =".S / from / to / "является замещающей командой.

1 голос
/ 05 февраля 2010

Чтобы решить другую часть вашего вопроса, проект unxutils переносит многие утилиты GNU на Win32, включая sed. Узнайте больше .

1 голос
/ 04 февраля 2010

Команда sed работает с cygwin, Unix-подобной оболочкой для Windows.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...