Hallo, mit dem Befehl $ find . -type f -exec grep -l 7024000002 {} \; bekomme ich alle Dateien die mich interessieren, ./20050420/INVRCPTS_7002_20050420111111.IN.archive ./20050420/INVRCPTS_7002_20050420111111.IN.bak ./20050424/INVRCPTS_7002_20050424111111.IN.archive ./20050421/INVRCPTS_7016_20050421111111.IN.archive in diesen Dateien möchte ich dann gleich auch noch nach einem weiteren Wert suchen: $ grep 04029045300322-SKU ./20050420/INVRCPTS_7002_20050420111111.IN.archive TRDTL000000000604029045300322-SKU 0000000000010000R20050420212100000000000 00000000000000000000 ATS ATS kann man das nicht in einen Aufruf stecken? Und um das ganze schön zu machen möchte ich diese eine Zeile für n Wertepaare aus einer txt Datei aufrufen.. diese Werte sollen in der txt Datei stehen. 7024000002 04029045300322-SKU ich bin mir nicht ganz sicher aber ich vermute das awk da helfen kann, ich habe mich mal eingelesen bin aber nicht so ganz zum ergebnis gekommen Kann mir jemand helfen einen rohling zusammen zu bauen der Rest steht dann schon in man awk Gruß und Dank Michael This e-mail (and/or attachments) is confidential and may be privileged. Use or disclosure of it by anyone other than a designated addressee is unauthorized. If you are not an intended recipient, please delete this e-mail from the computer on which you received it. We thank you for notifying us immediately.
Am Freitag, 6. Mai 2005 12:28 schrieb Michael Hoeller:
mit dem Befehl $ find . -type f -exec grep -l 7024000002 {} \; bekomme ich alle Dateien die mich interessieren, ./20050420/INVRCPTS_7002_20050420111111.IN.archive ./20050420/INVRCPTS_7002_20050420111111.IN.bak ./20050424/INVRCPTS_7002_20050424111111.IN.archive ./20050421/INVRCPTS_7016_20050421111111.IN.archive
in diesen Dateien möchte ich dann gleich auch noch nach einem weiteren Wert suchen: $ grep 04029045300322-SKU ./20050420/INVRCPTS_7002_20050420111111.IN.archive TRDTL000000000604029045300322-SKU 0000000000010000R20050420212100000000000 00000000000000000000 ATS ATS
kann man das nicht in einen Aufruf stecken?
$ find .... -exec grep -l 70224000002 {} \; | xargs grep -l 04029045300322-SKU
Und um das ganze schön zu machen möchte ich diese eine Zeile für n Wertepaare aus einer txt Datei aufrufen..
diese Werte sollen in der txt Datei stehen. 7024000002 04029045300322-SKU
ich bin mir nicht ganz sicher aber ich vermute das awk da helfen kann, ich habe mich mal eingelesen bin aber nicht so ganz zum ergebnis gekommen Kann mir jemand helfen einen rohling zusammen zu bauen der Rest steht dann schon in man awk
Wieso nicht mit der Shell direkt einlesen? while read key1 key2 do find ..... grep -l "$key1" .... | xargs grep "$key2" done < tabelle.txt -- Andreas
On Friday 06 May 2005 12:41, Andreas Winkelmann wrote:
Am Freitag, 6. Mai 2005 12:28 schrieb Michael Hoeller:
mit dem Befehl $ find . -type f -exec grep -l 7024000002 {} \; bekomme ich alle Dateien die mich interessieren,
in diesen Dateien möchte ich dann gleich auch noch nach einem weiteren Wert suchen: $ grep 04029045300322-SKU
kann man das nicht in einen Aufruf stecken?
$ find .... -exec grep -l 70224000002 {} \; | xargs grep -l 04029045300322-SKU
Man müsste auch auf find verzichten können, indem man grep noch "-r" übergibt: grep -rl 70224000002 {} | xargs grep -l 04029045300322-SKU Achim
Am Freitag, 6. Mai 2005 12:53 schrieb Achim Schaefer:
mit dem Befehl $ find . -type f -exec grep -l 7024000002 {} \; bekomme ich alle Dateien die mich interessieren,
in diesen Dateien möchte ich dann gleich auch noch nach einem weiteren Wert suchen: $ grep 04029045300322-SKU
kann man das nicht in einen Aufruf stecken?
$ find .... -exec grep -l 70224000002 {} \; | xargs grep -l 04029045300322-SKU
Man müsste auch auf find verzichten können, indem man grep noch "-r" übergibt:
grep -rl 70224000002 {} | xargs grep -l 04029045300322-SKU
Ja, dann aber auch ohne "{}" ;-) -- Andreas
Hallo, Am Fri, 06 May 2005, Michael Hoeller schrieb:
mit dem Befehl $ find . -type f -exec grep -l 7024000002 {} \; bekomme ich alle Dateien die mich interessieren, ./20050420/INVRCPTS_7002_20050420111111.IN.archive ./20050420/INVRCPTS_7002_20050420111111.IN.bak ./20050424/INVRCPTS_7002_20050424111111.IN.archive ./20050421/INVRCPTS_7016_20050421111111.IN.archive
in diesen Dateien möchte ich dann gleich auch noch nach einem weiteren Wert suchen: $ grep 04029045300322-SKU ./20050420/INVRCPTS_7002_20050420111111.IN.archive TRDTL000000000604029045300322-SKU 0000000000010000R20050420212100000000000 00000000000000000000 ATS ATS
kann man das nicht in einen Aufruf stecken?
Und um das ganze schön zu machen möchte ich diese eine Zeile für n Wertepaare aus einer txt Datei aufrufen..
diese Werte sollen in der txt Datei stehen. 7024000002 04029045300322-SKU
KEYS_RE="" ## diese Variablen, solltest du (dann auch unten) ggfs. VALS_RE="" ## sinnvoll umbenennen, aber ich weiss nicht, was du suchst... while read k v; do KEYS_RE="${KEYS_RE}|${k}" VALS_RE="${VALS_RE}|${v}" done < eingabe.txt find . -type f -exec egrep -l "${KEYS_RE##|}" {} \; | \ xargs egrep "${VALS_RE##|}" Das sucht gleich nach allen Werten. Ob das konkret geht weiss ich nicht, kommt darauf an, wonach du suchst bzw. ob und wie du die gefundenen Stellen / Dateien weiterbearbeiten willst. Ansonsten: while read key val; do find . -type f -exec grep -l "$key" {} \; | xargs grep "$val" done < eingabe.txt HTH, -dnh -- I always wonder - when the weatherman says "50% chance of rain" - whether I should take half an umbrella. -- Tanuki
participants (4)
-
Achim Schaefer
-
Andreas Winkelmann
-
David Haller
-
Michael Hoeller