Sie sind nicht angemeldet.

1

15.09.2004, 11:47

Datei auslesen

Halloa ich hoff mir kann wer weiterhelfen.

also ich habe da eine datei in der stehen lauter Dateinamen. diese dateinamen sind durch return getrennt. nun muss ich die dateinamen auslesen und weiterverarbeiten durch ein mv.

dass problem dabei liegt nun darin wenn ich die daten mittels cat | while read DATNAM hole und dann so weiter verwende mv $DATNAM $ZIELDVZ dann habe ich in DATNAM noch ein return zeichen mit drin dass ich nicht loswerde.

Dass problem daran ist nun also dass mein befehl nich wie er obensteht abgeschickt wird sondern nur mv $DATNAM ab geschickt wird. dies gibt natürlich ein fehler ohne ziel zum verschieben.

bei iedeen wie ich das return da weg bekomm oder wie ich dass ganze komplett anders lösen kann bitte sofort posten auch wenns nur ein ansatz ist

danke gubor

edit:
----------------------------------
Sollte ein Gast eine Idee haben darf er mir auch eine e-mail an
heizkoerperventil@yahoo.de schicken

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »gubor« (15.09.2004, 11:49)


Chucky the Devil

Pianist im Puff

  • »Chucky the Devil« ist männlich

Beiträge: 1 636

Wohnort: Koeln

Beruf: Network Architect

  • Nachricht senden

2

15.09.2004, 11:56

Quellcode

1
2
3
for datnam in $(cat Dateiname); do
  mv $datname $datname.old
done

3

15.09.2004, 12:15

I'm sorry danke für deine bemühungen aber damit kann ich in der shell nich so wirklich was anfangen.
bissher schaut mein code so aus:

Quellcode

1
2
3
4
5
cat $2 | while
	read DAT
do	
	mv $DAT $TARGET
done


aber dass haut irgendwie nicht und wenn ich ein echo $DAT $TARGET mache dann schreibt er $DAT hin und überschreibt in der gleichen zeile den anfang wieder mit $TARGET

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »gubor« (15.09.2004, 12:15)


Chucky the Devil

Pianist im Puff

  • »Chucky the Devil« ist männlich

Beiträge: 1 636

Wohnort: Koeln

Beruf: Network Architect

  • Nachricht senden

4

15.09.2004, 12:45

Quellcode

1
2
3
for DAT in $(cat $2); do
	mv $DAT $TARGET
done

5

15.09.2004, 12:50

funktioniert das bei dir bei mir sagt der immer:
syntax error at line 4: '$' unexpected

Pharao

2 sexy 4 my Linux

  • »Pharao« ist männlich

Beiträge: 4 214

Wohnort: Hirschhorn / Neckar

Beruf: Schüler

  • Nachricht senden

6

15.09.2004, 13:24

wie kommst du auf 4 Zeilen?
close the world - open the next


"funzt" und jegliche Abwandlung davon ist kein Wort, egal wie oft du es dir einredest, verdammt nochmal!

Chucky the Devil

Pianist im Puff

  • »Chucky the Devil« ist männlich

Beiträge: 1 636

Wohnort: Koeln

Beruf: Network Architect

  • Nachricht senden

7

15.09.2004, 13:29

Quellcode

1
2
3
for DAT in `cat $2`; do
	mv $DAT $TARGET
done

8

15.09.2004, 13:47

ja ich hab da vor noch 3 andre zeilen in meim script

Quellcode

1
2
3
4
for DAT in `cat $2`; do
	echo $1/$DAT $3
	#mv $DAT $TARGET
done

steht nun da und ich rufe auf:

test.x ./pfad datei x

Sollausgabe:
>./pfad/1 x
>./pfad/2 x
>./pfad/3 x

Istausgabe:
> xpfad/1 x
> xpfad/2 x
> xpfad/3 x

dauaus schliße ich dass hinten an $DAT wohl noch irgendein steuerzeichen dran hängt dass ich irgendwie weg bekommen muss.

außerdem wenn ich ein wc -l auf die Dateinamen mache dann kommt immer 17 dabei raus allerdings dürfen die dateinamen eigendlich nur 15 lang sein und dass sind sie in dem file auch.

Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von »gubor« (15.09.2004, 13:54)


Chucky the Devil

Pianist im Puff

  • »Chucky the Devil« ist männlich

Beiträge: 1 636

Wohnort: Koeln

Beruf: Network Architect

  • Nachricht senden

9

15.09.2004, 14:12

Alles Schwachsinn....

Poste die Datei aus der Du ausliest und schreib dazu, wie die Ausgabe aussehen soll.

10

15.09.2004, 15:41

So schwer?

for i in `cat dateiname`;do mv $i $TARGET;done

Gruss,
kp

strcat

Unix Gladiator

  • »strcat« ist männlich

Beiträge: 2 331

Wohnort: /Earth/Germany/Bavaria/Regensburg

  • Nachricht senden

11

15.09.2004, 16:08

"$i" zwecks Leerzeichen in Dateinamen. Ist ein Einzeiler mit der Zsh, aber manche Leute gehen lieber den komplizierten Weg und verwenden die Bash dazu, aber solange niemand weiss wie die Datei aussieht und was genau gemacht werden soll, bringt das alles nix ("Alles Schwachsinn" trifft es ziemlich genau).
Christian 'strcat' Schneider <http://www.strcat.de/>
/* When all else fails, read the instructions. */

12

15.09.2004, 16:39

also in der datei stehn aus eim ORACLE gespoolte dateinamen die im ascii format einfach einer nach dem andren abegespeichert sind.

wie es immo aussieht und wie es aussehen soll steht schon oben.

noch zur erleuterung:

> ist der normale zeilenanfang hab dass nur wegen leerzeichen gemacht.

rauskommen solll der ganznormale mv befehl
aber nach dem ausgelesenendateinamen beginnt er immer wieder die zeile von vorne zu beschreiben. dass total komisch.

thema nadre shell geht leidern nicht da ich in diesem system nur befugniss fur eine bash hab.

Nicht dass alle denken ich bin nur einfach zu dumm dazu die lösung die ihr mir präsentiert hab ich im kopf mir auch so überlegt gehabt allerdings geht dass nicht allerdings kann ich keine andren gründe finden, als dass ich wenn ich die datei auslese dann noch das zeilenendezeichen mit in die variable lese und somit ein konflikt auftritt.

strcat

Unix Gladiator

  • »strcat« ist männlich

Beiträge: 2 331

Wohnort: /Earth/Germany/Bavaria/Regensburg

  • Nachricht senden

13

15.09.2004, 18:30

Wieso postest Du ueberhaupt wenn Du keine Antworten/Loesungen haben wllst? Wenn Du welche haben willst, dann mach das, was Chucky the Devil gesagt hat.

> thema nadre shell geht leidern nicht da ich in diesem system nur befugniss fur eine bash
> hab.

Es sollte mich doch sehr wundern wenn Du nichts unter $HOME kompilieren und installieren kannst.
Christian 'strcat' Schneider <http://www.strcat.de/>
/* When all else fails, read the instructions. */

14

16.09.2004, 10:49

Zitat

Original von gubor
Nicht dass alle denken ich bin nur einfach zu dumm dazu die lösung die ihr mir präsentiert hab ich im kopf mir auch so überlegt gehabt allerdings geht dass nicht allerdings kann ich keine andren gründe finden, als dass ich wenn ich die datei auslese dann noch das zeilenendezeichen mit in die variable lese und somit ein konflikt auftritt.


bei einem solchen Satz hört die Hälfte schon mal auf zu lesen, die andere Hälfte weiß nicht, was gemeint ist.

Prom :chinese: <= Schlecht drauf
"Black Holes are where god divided by zero." Steven Wright, 1955

http://www.ubatuba.com.br/
http://www.buziosonline.com.br/

bonsai

Prof.Dr. Klugschiss

  • »bonsai« ist männlich

Beiträge: 1 486

Wohnort: N.de

Beruf: Informatiker

  • Nachricht senden

15

23.12.2004, 09:15

Mann.....dann nimm' doch Anführungszeichen.... - dann ist es piep-egal, wie
die Datei heisst. Selbst, wenn Sie " " heisst.....

Du hast nur ein Prob: Wenn Anfuehrungszeichnen im Dateinamen stehen und dann
halt sed/awk ....perl.... PERL! Juhu!

:(

Bernd
Die erste programmgesteuerte Rechenmaschine (Z1) wurde Mitte der 30er Jahre als "nicht patentwürdig" eingestuft. Warum versaut mir das Ding 50 Jahre später immer noch den Tag?

Thema bewerten