it-swarm.com.de

So finden Sie Zeilen mit einer Zeichenfolge in Linux

Ich habe eine Datei in Linux, ich möchte Zeilen anzeigen, die eine bestimmte Zeichenfolge in dieser Datei enthalten. Wie soll das gehen?

33
alwbtc

Der übliche Weg ist dies mit grep

grep 'pattern' file
50
knittl

Die grep Befehlsfamilie (incl egrep, fgrep) ist die übliche Lösung dafür.

$ grep pattern filename

Wenn Sie nach Quellcode suchen, ist ack die bessere Wahl. Es durchsucht automatisch Unterverzeichnisse und vermeidet Dateien, die Sie normalerweise nicht durchsuchen würden (Objekte, SCM-Verzeichnisse usw.).

6
Brian Agnew

/ tmp/meinedatei

first line text
wanted text
other text

der Befehl

$ grep -n "wanted text" /tmp/myfile | awk -F  ":" '{print $1}'
2
4
deFreitas

Neben grep können Sie auch andere Dienstprogramme wie awk oder sed verwenden.

Hier einige Beispiele. Angenommen, Sie möchten in der Datei is nach einem String GPL suchen.

Ihre Beispieldatei

[email protected]:~$ cat -n GPL 
     1    The GNU General Public License is a free, copyleft license for
     2    The licenses for most software and other practical works are designed
     3  the GNU General Public License is intended to guarantee your freedom to
     4  GNU General Public License for most of our software;
[email protected]:~$ 

1. grep

[email protected]:~$ grep is GPL 
  The GNU General Public License is a free, copyleft license for
the GNU General Public License is intended to guarantee your freedom to
[email protected]:~$ 

2. awk

[email protected]:~$ awk /is/ GPL 
  The GNU General Public License is a free, copyleft license for
the GNU General Public License is intended to guarantee your freedom to
[email protected]:~$ 

3. sed

[email protected]:~$ sed -n '/is/p' GPL
  The GNU General Public License is a free, copyleft license for
the GNU General Public License is intended to guarantee your freedom to
[email protected]:~$ 

Hoffe das hilft

0
Sabrina