You are not logged in.

  • Login

1

Thursday, March 17th 2011, 12:45pm

fgrep Befehl [unix, shell]

boar ich quäle mich da grad schon eine stunde mit dem käse ab...

ich soll in einem ordner mittels fgrep befehl stationen zwischen zwei längengraden suchen. die zeilen in den files sind so angeordnet:

Quoted

122010 16.754 47.771 115 Illmitz (Biologische Station)

relevant ist somit der bereich der hier 16.754 lautet...wie kann ich jetzt über fgrep nur die stationen ausgeben lassen, die zB zwischen 13 und 18 liegen? über %fgrep 13 | grep 18 *.txt werden mir alle zeilen angezeigt, die diese beiden werte enthalten, aber die anderen zahlen in der zeile interessieren mich nicht. irgendwie mit cut -c kombinieren? wie müsst das dann ausschauen?

Zitat

Original von nC_$kittle_
Muss ich dann auch Hitler lieber mögen [...] nur weil er Deutscher ist?

Zitat

Original von CF_Icey
ich hab eine Hakenkreuzfahne über meinem Bett und einen Adolf-Hitler-Schlafanzug mit zugehöriger Bettwäsche

This post has been edited 1 times, last edit by "CF_Ragnarok" (Mar 17th 2011, 12:45pm)


2

Friday, March 18th 2011, 1:47am

hm niemand? problem doch nicht so trivial wie ich dachte? wär halt rel. dringend :>

sylence

Administrator

Posts: 1,863

Location: Dresden

Occupation: GER

  • Send private message

3

Friday, March 18th 2011, 1:50am

Willst du die Werte interpretieren oder einfach nur den zweiten und dritten Wert haben?

Mit

Source code

1
awk '{ print $2 $3 }'

könntest du die Ausgabe nur auf die zweite und dritte Spalte reduzieren (zumindest sinngemäß, kanns grad nicht testen).

4

Friday, March 18th 2011, 1:50pm

hey ragna

linuxgurufreund von mir sagt folgendes:

Source code

1
2
3
cat datei | awk '{ if ( $2 >= 16 && $2 <= 18 ) print $5 }' 

does the job; wobei datei für die Datei mit den Koordinaten steht. 


und dann noch ne mail mit verbesserungen:

Source code

1
2
3
4
5
6
7
8
9
Fall 1: zwischen 13 und 18 ;  13 und 18 eingeschlossen 

cat *.txt | awk '{ if ( $2 >= 13 && $2 <= 18 ) print $5 }' ;  

Fall 2: zwischen 13 und 18 ; 13 und 18 nicht eingeschlossen 

cat *.txt | awk '{ if ( $2 > 13 && $2 < 18 ) print $5 }' ; 

ist recht simpel.


Jetzt passts auf jeden Fall.

gl hf damit ;)

5

Saturday, March 19th 2011, 2:23am

awesome! ja habs jetzt auch mit awk gemacht, fgrep saugt bälle

thx auch für den mail reminder jens0r :D