# Shell-Befehl sed



## themok (15. April 2006)

Hallo alle zusammen!

Mit  sed -n '$=' filename.txt  kann man ja die Zeilen zählen lassen. Das funktioniert in der shell auch einwandfrei.
Aber wenn ich im Makefile eine Variable definiere, wird die nicht mit der Zahl belegt. Hab das so gemacht:

LNS = $(shell sed -n '$=' filename.txt)

und dann irgendwann eben etwas in der Art:

@echo $(LNS)

jedenfalls wird da keine Zahl ausgegeben, nur ein "leeres" zeichen. Jemand ne Ahnung, woran das liegt?

muchas gracias !


----------



## themok (15. April 2006)

Nur noch als Anmerkung - folgendes funktioniert ja auch, warum dann nicht das andere?

SRV = $(shell uname -n)
...
...
target:
          @echo $(SRV)


----------



## thekorn (15. April 2006)

Hallo,
wenn ich mir mal folgendes beispiel anschaue sollte es vielleicht so gehen:


```
SRV = `sed -n  '$=' filename.txt`
@echo $(SRV)
```

Beispiele:
http://developers.cogentrts.com/cogent/prepdoc/pd-fundamentalmakefile.html

gruß
thekorn


----------



## thekorn (15. April 2006)

thekorn hat gesagt.:
			
		

> Hallo,
> wenn ich mir mal folgendes beispiel anschaue sollte es vielleicht so gehen:
> 
> 
> ...



Vollkommender Mist!!

Also, so gehts (zumindest mit wc -l):


```
WERT = "`wc -l < filename.txt`"

filename: filename.txt
	@echo "Zeilen: $(WERT)"
```

Sorry.

gruß
thekorn


----------



## themok (15. April 2006)

gruß korn!

ja das mit dem wc -l geht, das hatte ich auch schon probiert. Aber da hängt leider der string mit dem dateiname noch mit dran, den ich gar nich gebrauchen kann, da ich mit der Zahl weiterrechnen möchte. Alles sehr konfus ;-)


----------



## thekorn (15. April 2006)

themok hat gesagt.:
			
		

> gruß korn!
> 
> ja das mit dem wc -l geht, das hatte ich auch schon probiert. Aber da hängt leider der string mit dem dateiname noch mit dran, den ich gar nich gebrauchen kann, da ich mit der Zahl weiterrechnen möchte. Alles sehr konfus ;-)



Doch, rechnen kannst du:

```
WERT = "`wc -l < filename.txt`"

filename: filename.txt
	test=$$(expr $(WERT) + 1000); \
	echo $$test
```

gruß
thekorn


----------



## thekorn (15. April 2006)

Tja, manchmal sieht man halt den Wald vor lauter Bäumen nicht...
Mit sed:

```
WERT = "`sed -n $$= filename.txt`"

filename: filename.txt
	@test=$$(expr $(WERT) + 1000); \
	echo $$test
```

Was lernen wir daraus? Aus "$" wird "$$"  

gruß
thekorn


----------



## themok (15. April 2006)

jaaa ... danke! habs nach einigem hin und her so wie's sein soll. Durch das < in dem wc befehl wird nämlich gar kein string angehängt. Ausgezeichnet (Mr Burns  )

Danke vielmals!


----------

