Hi.
Hallo,
Eigene Lösungsvorschläge habe ich bis jetzt noch nicht.
Schade.
Habe alle anderen Aufgaben selbst machen können,
Fein.
aber hier hänge ich irgendwie fest.
Hm. Woran denn konkret? Du solltest versuchen, das Gesamtproblem in atomare Teilprobleme aufzuteilen. Falls Du mit einem davon Schwierigkeiten hast, die Du durch Lektuere der manpages zu den erwaehnten Befehlen nicht loesen kannst, bist Du hier wieder willkommen.
Ich mache ein Fernstudium zum Web-Master, ist kurz vor der
Vollendung und beschäftige mich jetzt mit Linux.
Ich weisz zwar nicht genau, was ein webmaster ist, aber IMHO ist die Reihenfolge sehr komisch. Was habt ihr denn bis jetzt gemacht? (Buah, ich will auch webmaster werden!)
Hast Du schon irgendwelche Lösungsvorschläge?
Ein paar Hinweise zum Dateitausch:
- cp (copy) kopiert Dateien. Als Argument werden (mindestens) zwei Namen benoetigt. Ist der zweite Name eine Datei wird die Datei mit dem ersten Namen ueber die mit dem zweiten Namen geschrieben. Ist der zweite Name ein Pfad wird die Datei mit dem ersten Namen ohne Veraenderung des Dateinamens in diesen Pfad geschrieben. Die Namen koennen dabei immer absolute und relative Pfade enthalten.
- mv (move) verschiebt Dateien und funktioniert genauso wie das cp, nur das die erste Datei entfernt wird. Verschieben und umbennenen ist das gleiche.
- rm (remove) loescht die als Argument uebergebenen Dateien und ist eigentlich hier ueberfluessig, wenn Du es trotzdem brauchst, keine Hemmungen.
- Die ~ steht fuer das home-Verzeichnis des users und expandiert immer zu einem absoluten Pfad, ist also auf einer Unix-Maschine immer eindeutig.
- Tauschen rueckgaengig machen ist aequivalent zum nochmaligen Tauschen.
Zusammen mit den Hinweisen, wie das script anfangen musz, sollte das jetzt eigentlich kein Problem sein. Fang einfach mal was an und komme mit Deinen Ideen her. (Ich hoffe, Du hast irgendwo eine Unix/Linux-Maschine, damit Du rumprobieren kannst. Ansonsten sei Dir cygwin[1] empfohlen.)
Die zweite hab ich entweder grundlegend falsch verstanden, ist wahnsinnig kompliziert oder ich habe mich in eine total falsche Richtung verrannt. (Ich hoffe ersteres, befuerchte letzeres.) Um mal zusammenzufassen, wie ich die Aufgabe verstanden hab:
-
Den Text ‚Vor dem Tausch:‘ ausgeben.
-
Den Text ‚Inhalt von da1:‘ ausgeben.
-
Den Inhalt der Datei da1 ausgeben.
-
Den Text ‚Inhalt von da2:‘ ausgeben.
-
Den Inhalt der Datei da1 ausgeben.
-
Eine Leerzeile ausgeben.
-
Die Datei tauschen.
-
Den Text ‚Nach dem Tausch:‘ ausgeben.
-
Den Text ‚Inhalt von da1:‘ ausgeben.
-
Den Inhalt der neuen, getauschten Datei da1 ausgeben.
-
Den Text ‚Inhalt von da2:‘ ausgeben.
-
Den Inhalt der neuen, getauschten Datei da2 ausgeben.
Das ist IMHO fuer sechs Zeilen ganz schoen viel, zumal die erste und letzte Zeile schon mit einem echo am Anfang festgeklopft ist. Es mueszen mindestens vier Dateiausgaben gemacht werden (vier Zeilen) und immer zwischendurch Textmeldungen (nochmal vier Zeilen, wobei sich die Meldungen zusammenfassen lassen. Meine zwei kreativsten Vorschlaege sind:
echo -e „Vor dem Tausch:\nInhalt von da1:\ncat ~/linutest/da1
\nInhalt von da2\ncat ~/linutest/unt_1/da2
\n“
~/linutest/tausch
echo -e „Nach dem Tausch:\nInhalt von da1:\ncat ~/linutest/da1
\nInhalt von da2\ncat ~/linutest/unt_1/da2
“
echo -n
und
echo "`for i in Vor Nach
do echo -e \"$i dem Tausch:\"
sed \"1iInhalt von da1:\" ~/linutest/da1 ~/linutest/unt\_1/da2 |sed \"\`wc -l ~/linutest/da1 |awk '{print $1+2}'\`iInhalt von da2:\"
test $i = \"Vor\" && ~/linutest/tausch
done`"
echo -n
Wobei der aufmerksame Leser bemerken wird, dasz die zweite Version die Leerzeile zwischendurch weglaeszt, was aber auch trivial nachzureichen waere, und ich den Begriff Befehl groszzuegig als Zeile ausgelegt hab. In anderen Varianten fasse ich den Begriff strenger auf, erzeuge und kompiliere dafuer aber C-Programme oder bastle kurze perl-Einzeiler zusammen. Die erfuellen zwar die engen Rahmenvorgaben, sind aber dermaszen sinnlos kompliziert, dasz ich mir nicht vorstellen kann, dasz das die gewuenschte Loesung sein soll. Also, sag Du mir mal, was ich falsch verstanden hab.
Gruss vom Frank.
P.S.: Weitere kreative Ideen anderer Mitleser faende ich auch sehr interessant.
===footnotes===
[1] http://www.cygwin.com/