(gelöst)in der Shell mehre Dateien gleichzeitig durchsuchen

Dieses Forum behandelt Fragen über alle Bereiche, die nicht zur Erstellung der Distribution gehören. Das kann beispielsweise Webseiten-Entwicklung, Marketing, usw. sein.

(gelöst)in der Shell mehre Dateien gleichzeitig durchsuchen

Beitragvon AndieY » Dez 11th, '23, 13:48

Hab mal eine Distributionsübergreifende Frage, zum Suchen in Dateien.

Ich hab hier 15 Dateien, nennen wir sie mal 1.txt bis 15.txt, ich möchte nun gerne wissen ob in Datei 7.txt bis 11.txt das Word Erdbeertorte nur in der 2ten Zeile vorkommt. Jemand eine Idee wie man das als Einzeiler löst?
Zuletzt geändert von AndieY am Dez 13th, '23, 16:46, insgesamt 1-mal geändert.
AndieY
 
Beiträge: 83
Registriert: Jul 25th, '11, 18:05

Re: in der Shell mehre Dateien gleichzeitig durchsuchen

Beitragvon doktor5000 » Dez 11th, '23, 16:57

Ich bin nicht böse, sondern nur ehrlich. Und wer lesen kann, ist klar im Vorteil.
----
Mageia - the magic continues
Benutzeravatar
doktor5000
 
Beiträge: 6055
Registriert: Jun 2nd, '11, 09:39

Re: in der Shell mehre Dateien gleichzeitig durchsuchen

Beitragvon AndieY » Dez 11th, '23, 20:21

so 'ne 3/4 Lösung hab ich
Code: Alles auswählen
 find -iname 'Muttersrezepte_[7,8,9,10,11].txt' -exec sed -ne '2p' {} \; |grep 'Erdbeertorte'


Das Problem ist, es funktioniert nur solange die Nummer einstellig ist z.B. gibt er bei 10 auch noch die 1 aus.
AndieY
 
Beiträge: 83
Registriert: Jul 25th, '11, 18:05

Re: in der Shell mehre Dateien gleichzeitig durchsuchen

Beitragvon doktor5000 » Dez 11th, '23, 21:34

Warum nimmst du nicht einfach einen der Vorschläge aus den Antworten im Link ?
Ich bin nicht böse, sondern nur ehrlich. Und wer lesen kann, ist klar im Vorteil.
----
Mageia - the magic continues
Benutzeravatar
doktor5000
 
Beiträge: 6055
Registriert: Jun 2nd, '11, 09:39

Re: in der Shell mehre Dateien gleichzeitig durchsuchen

Beitragvon AndieY » Dez 12th, '23, 06:17

@doktor5000 ich weiß gerade nicht was du meinst?
AndieY
 
Beiträge: 83
Registriert: Jul 25th, '11, 18:05

Re: in der Shell mehre Dateien gleichzeitig durchsuchen

Beitragvon doktor5000 » Dez 12th, '23, 11:28

Naja du stellst die Frage, bekommst eine Lösung dafür. Machst dann aber irgendwas anderes, was nicht ganz das macht was du suchst. Aber jedem das Seine.
Ich bin nicht böse, sondern nur ehrlich. Und wer lesen kann, ist klar im Vorteil.
----
Mageia - the magic continues
Benutzeravatar
doktor5000
 
Beiträge: 6055
Registriert: Jun 2nd, '11, 09:39

Re: in der Shell mehre Dateien gleichzeitig durchsuchen

Beitragvon AndieY » Dez 12th, '23, 11:55

Tut mir leid Ich steh gerade auf dem Schlauch, welche Lösung du meinst. Das "find -name -exec" hab ich doch aus dem Link von dir. Und ganz am Rande sei noch erwähnt das meine spärlichen Englischkenntnisse leider auch nicht ausreichend sind um den Link wirklich sicher sinngemäß zu verstehen.
AndieY
 
Beiträge: 83
Registriert: Jul 25th, '11, 18:05

Re: in der Shell mehre Dateien gleichzeitig durchsuchen

Beitragvon doktor5000 » Dez 12th, '23, 14:15

Die akzeptierte Antwort, etwas angepasst da du es ja nicht rekursiv brauchst:
Code: Alles auswählen
grep -Plz '^(?:.*\n){1}.*Erdbeertorte' Muttersrezepte_*txt

zeigt dir alle Treffer (Dateinamen) aus Muttersrezepte_*txt wo Erdbeertorte genau in der zweiten Zeile steht.

Es geht aber viel einfacher
Code: Alles auswählen
grep -ni erdbeertorte Muttersrezepte*txt

zeigt alle Zeilennummern wo erdbeertorte vorkommt, das kann man einfach weiter filtern mit awk oder grep, je nachdem was du mit der Ausgabe anstellen willst.
Ich bin nicht böse, sondern nur ehrlich. Und wer lesen kann, ist klar im Vorteil.
----
Mageia - the magic continues
Benutzeravatar
doktor5000
 
Beiträge: 6055
Registriert: Jun 2nd, '11, 09:39

Re: in der Shell mehre Dateien gleichzeitig durchsuchen

Beitragvon AndieY » Dez 12th, '23, 18:45

das Perlgrep muss ich jetzt mal aufdrösseln
^ ist der Zeilenanfang
() die Klammer umschließt einen Teil vom Regex
{} ist das Vorkommen vom Vorherigen Zeichen
.* sind beliebige Zeichen
\n ist der Zeilenumbruch
aber was macht das ?:
AndieY
 
Beiträge: 83
Registriert: Jul 25th, '11, 18:05

Re: in der Shell mehre Dateien gleichzeitig durchsuchen

Beitragvon sturmvogel » Dez 12th, '23, 21:12

Immer aktuell:
Diskutiere nie mit einem Idioten. Er zieht dich auf sein Niveau herunter und besiegt dich aufgrund seiner jahrelangen Erfahrung
sturmvogel
 
Beiträge: 488
Registriert: Jul 29th, '12, 23:40

Re: in der Shell mehre Dateien gleichzeitig durchsuchen

Beitragvon doktor5000 » Dez 12th, '23, 21:35

Das wird in der Antwort auch beschrieben, und ein Übersetzer ist nun nicht so kompliziert zu benutzen: https://unix-stackexchange-com.translate.goog/questions/690504/recursive-grep-matching-only-specific-line-number/690659?_x_tr_sl=auto&_x_tr_tl=de&_x_tr_hl=de&_x_tr_pto=wapp#690659
?: ist dabei für einen komplexen Ausdruck bei einem Lookahead, siehe auch https://www.perlmonks.org/?node_id=518444
{1} ist die Anzahl der Vorkommen von dem was links davon steht. Also am Anfang der Zeile wird irgendein String mit einem folgenden Zeilenumbruch gesucht, wo nach dem Zeilenumbruch in der zweiten Zeile Erdbeertorte steht.
Ich bin nicht böse, sondern nur ehrlich. Und wer lesen kann, ist klar im Vorteil.
----
Mageia - the magic continues
Benutzeravatar
doktor5000
 
Beiträge: 6055
Registriert: Jun 2nd, '11, 09:39

Re: (gelöst)in der Shell mehre Dateien gleichzeitig durchsuc

Beitragvon AndieY » Dez 13th, '23, 16:47

Danke für die Erklärung.
AndieY
 
Beiträge: 83
Registriert: Jul 25th, '11, 18:05


Zurück zu Andere

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste