2016-06-25 21 views
0

Hallo ich zu entkommen bin Scripting, Shell i die folgenden Probleme sind vorGrep Sonderzeichen

1> Wie kann ich grep Worte mit "oder" oder beides in einem Wort in einer Datei zu finden, die

groß ist

ich versuchte

grep "'\|"" foo.txt 

die nicht

2> Nehmen Sie eine Datei nicht funktioniert, die aus einem Text bestehen und ganze Zeilen einer anderen Datei drucken, wo der Text vorhanden ist, Beispiel

Datei 1 enthält

abc 
def 
lmo 

Datei 2

amn,abc 
abc,amd 
fgh,def 
abd,lmo 

Spiel der Text in der Datei 1 und 2. Spalte der Datei 2 und drucken enthält die gesamte Linie der Datei 2

desired output 
amn,abc 
fgh,def 
abd,lmo 
+1

Die zweite Frage sehr leicht 'awk' Verwendung gelöst werden können. Es gibt bereits viele Antworten, die ein solches Problem lösen. Probiere sie aus. Sie werden bessere Antworten erhalten, wenn Sie etwas ausprobieren und Schwierigkeiten darin finden. – nu11p01n73R

Antwort

1

Sie können Zeichenklassen verwenden, um " oderzu entsprechenals

grep "['\"]" 

Beispiel

$ echo hello\" | grep "['\"]" 
hello" 
+0

Das ist keine Zeichenklasse, es ist ein Klammerausdruck, der eine Zeichenliste enthält. Eine Zeichenklasse ist ein länderunabhängiger benannter Bezeichner für eine Gruppe von Zeichen (z. B. '[: alnum:]' für die Menge alphanumerischer Zeichen wie von Ihrem Gebietsschema definiert), normalerweise innerhalb eines Klammerausdrucks (zB '[[ : alnum:]] ') und manchmal kombiniert mit anderen Zeichenklassen und/oder Zeichenbereichen (zB' 3-7') und/oder Zeichenlisten (zB '& _ #') innerhalb des Klammerausdrucks (zB '[[:: alnum :] [: Leerzeichen:] 3-7 & _ #] '). –