行の先頭で複数の除外制約を持つ文字列を検索する

行の先頭で複数の除外制約を持つ文字列を検索する

ファイル内のすべての「二重引用符」文字列を見つけるには、次のようにします。

grep -rnw . -e "\".*\""

しかし、特定のテキストで始まるすべての行を除外したいと思います。たとえば、

  • #include
  • Serial.

たとえば、次の行があります。

#include "patterns.h"
#include "network.h"
Serial.println("clear");
Serial.println("set wifi");
#include "patterns.h"
#include "common.h"
Serial.printf("[LED] Init segment #%u with size %u\r\n", i + 1, len);
password = "xxxxxx";
ESPAsync_wifiManager.setCredentials(WM_config.WiFi_Creds.wifi_ssid, WM_config.WiFi_Creds.wifi_pw, "", "");
ESPAsync_wifiManager.setCORSHeader("Your Access-Control-Allow-Origin");
Serial.print(F("Starting configuration portal @ "));
Serial.print(F("192.168.4.1"));

コマンドは次の項目のみをリストする必要がありますgrep

password = "xxxxxx";
ESPAsync_wifiManager.setCredentials(WM_config.WiFi_Creds.wifi_ssid, WM_config.WiFi_Creds.wifi_pw, "", "");
ESPAsync_wifiManager.setCORSHeader("Your Access-Control-Allow-Origin");

ベストアンサー1

PCREは負の予測をサポートします。

grep -Pe '^(?!Serial|#).*".*"'
  • ^行の始まりです。
  • (?!...)負の予測、つまりここでの意味は次のとおりです。行がSerialまたはで始まらない。#

おすすめ記事