AWK / Grep — исключить строки, содержащие пути к файлам

#regex #linux #awk #grep

#регулярное выражение #linux #awk #grep

Вопрос:

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

 sudo cat serv_list.txt | awk '!/C:\Windows\system32/' > serv2.txt
sudo cat serv_list.txt | awk '!/"C:\Windows\system32"/' > serv2.txt
  

или

 sudo cat serv_list.txt | grep -a -v "C:Windowssystem32"
  

Я также пытался избежать косых черт, но это не сработало.

Файл выглядит примерно так:

 Name         PathName                              ProcessId   StartMode
Dhcp         C:Windowssystem32svchost...        784         Auto
ehRecvr      C:WindowsehomeehRecvr.exe          543         Auto
defragsvc    C:Windowssystem32svchos...         456         Manual
Audiosrv     C:WindowsSystem32svchost.e..       123         Manual
  

Вывод должен быть:

 Name         PathName                              ProcessId   StartMode
ehRecvr      C:WindowsehomeehRecvr.exe          543         Auto
  

Может кто-нибудь, пожалуйста, помогите мне, как я должен изменить выражение awk или grep, чтобы исключить все строки, содержащие путь к каталогу system32.

Спасибо 🙂

Извлечение файла из командной строки: введите описание изображения здесь

Извлечение файла из редактора: введите описание изображения здесь

Последние строки вывода: cat -v serv_list2.txt

                                                FALSE            Windows Update                                          Normal                   0                      wuauserv                             C:Windowssystem32svchost.exe -k netsvcs                                                856                                                0                        Share Process  TRUE           Auto       LocalSystem                  Running                      OK       Win32_ComputerSystem     ELS-PC                0       0         
FALSE        FALSE       Windows Driver Foundation - User-mode Driver Framework  0           Win32_Service      Manages user-mode driver host processes.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 FALSE            Windows Driver Foundation - User-mode Driver Framework  Normal                   1077                   wudfsvc                              C:Windowssystem32svchost.exe -k LocalSystemNetworkRestricted                           0                                                  0                        Share Process  FALSE          Manual     LocalSystem                  Stopped                      OK       Win32_ComputerSystem     ELS-PC                0       0         
FALSE        FALSE       WWAN AutoConfig                                         0           Win32_Service      This service manages mobile broadband (GSM amp; CDMA) data card/embedded module adapters and connections by auto-configuring the networks. It is strongly recommended that this service be kept running for best user experience of mobile broadband devices.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               FALSE            WWAN AutoConfig                                         Normal                   1077                   WwanSvc                              C:Windowssystem32svchost.exe -k LocalServiceNoNetwork                                  0                                                  0                        Share Process  FALSE          Manual     NT AuthorityLocalService    Stopped                      OK       Win32_ComputerSystem     ELS-PC                0       0         
kali@kali:~$ 
  

Вывод извлечения из

 kali@kali:~$ awk -v IGNORECASE=1 '
{
  gsub(/r/,"")
}
FNR==1{
  print
  next
}
($2!~/C:\Windows\system32\/)
' serv_list2.txt
  
                                                FALSE            WLAN AutoConfig                                         Normal                   1077                   Wlansvc                              C:Windowssystem32svchost.exe -k LocalSystemNetworkRestricted                           0                                                  0                        Share Process  FALSE          Manual     LocalSystem                  Stopped                      OK       Win32_ComputerSystem     ELS-PC                0       0         
FALSE        TRUE        WMI Performance Adapter                                 0           Win32_Service      Provides performance library information from Windows Management Instrumentation (WMI) providers to clients on the network. This service only runs when Performance Data Helper is activated.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            FALSE            WMI Performance Adapter                                 Normal                   0                      wmiApSrv                             C:Windowssystem32wbemWmiApSrv.exe                                                     1436                                               0                        Own Process    TRUE           Manual     localSystem                  Running                      OK       Win32_ComputerSystem     ELS-PC                0       0         
FALSE        FALSE       Windows Media Player Network Sharing Service            0           Win32_Service      Shares Windows Media Player libraries to other networked players and media devices using Universal Plug and Play                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         FALSE            Windows Media Player Network Sharing Service            Normal                   1077                   WMPNetworkSvc                        "C:Program FilesWindows Media Playerwmpnetwk.exe"                                      0                                                  0                        Own Process    FALSE          Manual     NT AUTHORITYNetworkService  Stopped                      OK       Win32_ComputerSystem     ELS-PC                0       0         
FALSE        FALSE       Parental Controls                                       0           Win32_Service      This service is a stub for Windows Parental Control functionality that existed in Vista. It is provided for backward compatibility only.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 FALSE            Parental Controls                                       Normal                   1077                   WPCSvc                               C:Windowssystem32svchost.exe -k LocalServiceNetworkRestricted                          0                                                  0                        Share Process  FALSE          Manual     NT AuthorityLocalService    Stopped                      OK       Win32_ComputerSystem     ELS-PC                0       0         
FALSE        FALSE       Portable Device Enumerator Service                      0           Win32_Service      Enforces group policy for removable mass-storage devices. Enables applications such as Windows Media Player and Image Import Wizard to transfer and synchronize content using removable mass-storage devices.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            FALSE            Portable Device Enumerator Service                      Normal                   0                      WPDBusEnum                           C:Windowssystem32svchost.exe -k LocalSystemNetworkRestricted                           0                                                  0                        Share Process  FALSE          Manual     LocalSystem                  Stopped                      OK       Win32_ComputerSystem     ELS-PC                0       0         
FALSE        TRUE        Security Center                                         0           Win32_Service      The WSCSVC (Windows Security Center) service monitors and reports security health settings on the computer.  The health settings include firewall (on/off), antivirus (on/off/out of date), antispyware (on/off/out of date), Windows Update (automatically/manually download and install updates), User Account Control (on/off), and Internet settings (recommended/not recommended). The service provides COM APIs for independent software vendors to register and record the state of their products to the Security Center service.  The Action Center (AC) UI uses the service to provide systray alerts and a graphical view of the security health states in the AC control panel.  Network Access Protection (NAP) uses the service to report the security health states of clients to the NAP Network Policy Server to make network quarantine decisions.  The service also has a public API that allows external consumers to programmatically retrieve the aggregated security health state of the system.  FALSE            Security Center                                         Normal                   0                      wscsvc                               C:WindowsSystem32svchost.exe -k LocalServiceNetworkRestricted                          784                                                0                        Share Process  TRUE           Auto       NT AUTHORITYLocalService    Running                      OK       Win32_ComputerSystem     ELS-PC                0       0         
FALSE        TRUE        Windows Search                                          0           Win32_Service      Provides content indexing, property caching, and search results for files, e-mail, and other content.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    FALSE            Windows Search                                          Normal                   0                      WSearch                              C:Windowssystem32SearchIndexer.exe /Embedding                                          2324                                               0                        Own Process    TRUE           Auto       LocalSystem                  Running                      OK       Win32_ComputerSystem     ELS-PC                0       0         
FALSE        TRUE        Windows Update                                          0           Win32_Service      Enables the detection, download, and installation of updates for Windows and other programs. If this service is disabled, users of this computer will not be able to use Windows Update or its automatic updating feature, and programs will not be able to use the Windows Update Agent (WUA) API.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      FALSE            Windows Update                                          Normal                   0                      wuauserv                             C:Windowssystem32svchost.exe -k netsvcs                                                856                                                0                        Share Process  TRUE           Auto       LocalSystem                  Running                      OK       Win32_ComputerSystem     ELS-PC                0       0         
FALSE        FALSE       Windows Driver Foundation - User-mode Driver Framework  0           Win32_Service      Manages user-mode driver host processes.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 FALSE            Windows Driver Foundation - User-mode Driver Framework  Normal                   1077                   wudfsvc                              C:Windowssystem32svchost.exe -k LocalSystemNetworkRestricted                           0                                                  0                        Share Process  FALSE          Manual     LocalSystem                  Stopped                      OK       Win32_ComputerSystem     ELS-PC                0       0         
FALSE        FALSE       WWAN AutoConfig                                         0           Win32_Service      This service manages mobile broadband (GSM amp; CDMA) data card/embedded module adapters and connections by auto-configuring the networks. It is strongly recommended that this service be kept running for best user experience of mobile broadband devices.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               FALSE            WWAN AutoConfig                                         Normal                   1077                   WwanSvc                              C:Windowssystem32svchost.exe -k LocalServiceNoNetwork                                  0                                                  0                        Share Process  FALSE          Manual     NT AuthorityLocalService    Stopped                      OK       Win32_ComputerSystem     ELS-PC                0       0         
kali@kali:~$ 

  

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

1. Спасибо, что продемонстрировали свои усилия в виде кода, не могли бы вы добавить образцы ввода и ожидаемого результата в свой вопрос для лучшего понимания, пожалуйста, отредактируйте свой пост.

2. Спасибо за напоминание. Я обновил вопрос. Я надеюсь, что это поможет лучше понять проблему.

Ответ №1:

Не могли бы вы, пожалуйста, попробовать следующее, написанное и протестированное с показанными примерами в GNU awk .

 awk '!/[cC]:\[wW][iI][nN][dD][[oO][wW][sS]\[sS][yY][sS][tT][eE][mM]32/' Input_file
  

или

 awk 'tolower($0) !~ /c:\windows\system32/' Input_file
  

Похоже, что в системе OP нет IGNORECASE опции, поэтому придерживайтесь вышеуказанного подхода, при котором сопоставление маленькой и заглавной буквы в обоих случаях для сопоставления.

Не знал, что это закончится здесь, поскольку образцы OP постоянно менялись. Или используйте grep опцию игнорирования здесь.

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

1. Тем не менее, спасибо за ответ, я по-прежнему предоставляю все строки в качестве выходных данных. Я добавил еще два скриншота, которые могут помочь. Может быть, проблема в файле, поскольку он работал, когда вы его тестировали? Файл был создан в Windows, может быть, есть проблема?

2. @thepaintedcow, похоже, у вас есть возврат каретки в вашем Input_file, можете ли вы запустить один раз cat -v Input_file в своем файле и сообщить мне, если увидите там управляющие символы M?

3. Я пробовал, см. Обновленный пост выше. К сожалению, это, похоже, не работает.

4. @thepaintedcow, awk -v IGNORECASE=1 '{gsub(/r/,"")} FNR==1{print;next} !/C:\Windows\system32\/' Input_file сработало для меня, разве это не сработало для вас? Для ваших показанных примеров, пожалуйста, сообщите здесь, о чем не идет речь, пожалуйста.

5. !/[cC]:\[wW][iI][nN][dD][[oO][wW][sS]\[sS][yY][sS][tT][eE][mM]32/ должно быть записано как просто tolower($0) !~ /c:\windows\system32/ .