Где находится команда сценария Unix в Cygwin?

$ sed -E -n -e '/ HAS NOT BEEN PATCHED/ {
                  s/^(\[[^]]*\]).*([A-Z]:)/\1 - \2/;
                  s/ HAS NOT BEEN PATCHED.*//p}' nessus.log
[IP address] - C:\WINDOWS\SYSTEM32\GPPREF.DLL
[IP address] - C:\WINDOWS\SYSTEM32\BCRYPT.DLL
[IP address] - C:\WINDOWS\SYSTEM32\GPPREF.DLL
[IP address] - C:\PROGRAM FILES\MICROSOFT SQL SERVER\MSSQL12.ACT7\MSSQL\BINN\SQLSERVR.EXE

Для каждой строки, соответствующей HAS NOT BEEN PATCHED, удалите все, что находится между IP-адресом и первой буквой диска ([A-Z]:). «IP-адрес» определяется как все, что находится внутри квадратных скобок -в начале строки, кроме закрытой квадратной скобки --([^]]*). Затем удалите все, начиная с HAS NOT BEEN PATCHEDдо конца строки, и напечатайте измененную строку.

Я рекомендую использовать символ табуляции \tв качестве разделителя полей между IP-адресом и путем вместо-(пробел, тире, пробел ). Это облегчило бы дальнейшую работу.

Регулярные выражения / HAS NOT BEEN.../включают пробел в начале, чтобы избежать появления висящего символа пробела на выходе.

0
05.11.2019, 07:23
1 ответ

Вutil-linux(по крайней мере за последние 4 года кажется):

2015-03-23 08:47       18963 usr/bin/script.exe
2015-03-23 08:47       14355 usr/bin/scriptreplay.exe
2
28.01.2020, 02:29

Теги

Похожие вопросы