Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Shell Script. Ordner einlesen und in dritter Spalte einfügen.

Mitglied: Fraenky

Fraenky (Level 1) - Jetzt verbinden

22.03.2010 um 15:16 Uhr, 5338 Aufrufe, 3 Kommentare

Hallo zusammen.

Ich habe folgende Aufgabenstellung zu lösen und bin für jede Hilfe dankbar.

In einem Unterordner des aufrufenden Scripts namens doku sollen alle Namen der anwesenden Dateien erfasst werden und eine natürliche menschlich orientierte nummerische Ordnung sichergestellt sein.
Die Namen haben ein Präfix vor der laufenden Nummer mit anschließender Typbezeichnung, also z.B.: a102.txt
Das ist wichtig, weil die laufenden Nummern in der Dateienbezeichnung korrespondieren mit den Zeilen der nächsten Aufgabe.

Die nächste Aufgabe:
In dem selben Ordner des ausführenden Scripts befindet sich eine Datei namens test.
In dieser Datei test befinden sich Datensätze, die durch # getrennt sind.
Also jede Zeile ist als ein Datensatz zu betrachten. Z.B.:
data1#data2#data3#data4#usw
Die Anzahl der Zeilen in der Datei ist beliebig.

Jetzt soll der erste Name der im ersten Schritt festgestellten Dateien des Unterordners
in den ersten Datensatz der Datei test eingefügt werden
anstelle des bisherigen x-ten Teil des ersten Datensatzes.

Also angenommen, der erste Name der ersten Datei des Unterordners hieße a1.txt
und der x-te Teil ist als 3 definiert über eine Variable,
würde das gewünschte Ergebnis so aussehen:
data1#data2#a1.txt#data4
data1#data2#a2.txt#data4
data1#data2#a3.txt#data4
data1#data2#a4.txt#data4

so das das 3.Feld des Datensatzes den Namen der Dateien des Unterordners darstellt.

Leider kann ich mit meinen Fähigkeiten die Aufgabe nicht umsetzen, so das ich hier um Hilfe nachfrage.

Gruß

Fraenky
Mitglied: TsukiSan
23.03.2010 um 01:16 Uhr
Hallo Fraenky,

anhand deines kurzen Beispiels eventuell so in VBS
Pfade etc. muessen von dir noch angepasst werden.
01.
Dim Ordner, MeineTestDatei
02.
Dim Pfadangabe
03.
Dim DateiVorhanden (3) , I
04.
Dim MeineDateiNeu (3)
05.

06.
Ordner = "D:\1\"
07.
MeineTestDatei = "D:\1\Test.txt"
08.
I = 0
09.
set FS = createobject("Scripting.FileSystemObject")
10.

11.

12.
Listordner Ordner
13.

14.
Sub ListOrdner(ordner)
15.
	Set Ordner = FS.getfolder(ordner)
16.

17.

18.
	For Each Unterordner In Ordner.subfolders
19.
		Pfadangabe = unterordner.path
20.
	next
21.

22.
	Set Ordner = FS.getfolder(Pfadangabe)
23.

24.
	For Each file In Ordner.files
25.
		Pfadangabe = File.path
26.
		DateiNameTemp = Split(Pfadangabe , "\")
27.
		Dateiname = DateiNameTemp(UBound(DateinameTemp))
28.
		DateiVorhanden(I) = DateiName
29.
		I = I + 1
30.
	Next
31.

32.
End Sub
33.

34.

35.
Set DateiInfo = FS.OpenTextFile(MeineTestDatei, 1)
36.

37.
for I = 0 to Ubound(DateiVorhanden) 
38.
    
39.
    	temp = DateiInfo.ReadLine
40.
	temp1 = Split(temp, "#")
41.
	MeineDateiNeu(i) = temp1(0) & "#" & temp1(1)  & "#" &  DateiVorhanden(I)  & "#" &  temp1(3)
42.
	
43.
next
44.

45.
	DateiInfo.close
46.

47.
Set DateiInfo = FS.CreateTextFile(MeineTestDatei, TRUE)
48.
	DateiInfo.close
49.

50.
Set DateiInfo = FS.OpenTextFile(MeineTestDatei, 8)
51.
for i = 0 to Ubound(DateiVorhanden)
52.
	Dateiinfo.Writeline (MeineDateiNeu(i))
53.
next
54.
DateiInfo.close
55.

56.
msgbox "Fertig"
Gruss
Tsuki
Bitte warten ..
Mitglied: Fraenky
23.03.2010 um 17:21 Uhr
Hallo TzukiSan.

Schön klingenden Namen hast Du.

Leider habe ich mich kürzlich gegen Vista und für Linux entschieden, so das ich das VBS Script leider nicht testen kann.
Im nachhinein fällt mir meine in dieser Hinsicht unvollständige Überschrift auf, die besser mit Linux Shell Script begonnen hätte.
Danke also für Deinen Einsatz und Sorry für die unvollständige Formulierung.

Was mich etwas wundert ist doch die Gösse des Codes.

Ich habe einen neuen Lösungsansatz, der das selbe anders erreicht und kürzeren Code ermöglichen könnte:

Alle Dateien im Ordner doku erfassen, sortieren und in einer temp Datei zeilenweise getrennt zwischenspeichern.
Dann mit cut und paste die Zeilen entsprechend zusammenstellen, temp löschen und in Datei abspeichern.

Also aus der Datei test die ersten 2 Zeilen ausschneiden, dann die Zeile der temp Datei einfügen( die dritte neue Zeile) und dann die restlichen Zeilen der test Datei einfügen und unter neuem Namen abspeichern.

Mich würde jetzt interessieren, wie ein solcher Ablauf im #!/bin/bash Script aussieht, weil Experimente mit cut und paste erfolgreich waren.

Also nochmal Danke

und Gruss

Fraenky
Bitte warten ..
Mitglied: TsukiSan
23.03.2010 um 23:49 Uhr
Hallo Fraenky,

danke für die Blumen

Naja, ich lass den Schnippet mal stehen, eventuell nützt es jemand anders mal.
Der Code kann noch um vieles verkürzt werden, aber das wäre dann "Finetuning" und wer es benötigt, der kann später nochmal fragen.

Die "Basher" werden sich hoffentlich melden, weil da hab ich weniger Ideen, wegen nicht vorhandenen OS

Gruss
Tsuki
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Bash Shell Script lernen
gelöst Frage von RobJoe25Batch & Shell4 Kommentare

Hallo Administrator-Community, ich habe eine Frage. Kennt jemand gute Homapage´s (am besten auf Deutsch) oder gute Bücher, wie ich ...

Batch & Shell
Unix Shell-Script: IF-Anweisung
gelöst Frage von newit1Batch & Shell6 Kommentare

Hallo zusammen, kann ich mit einer IF-Anweisung prüfen, ob in einer lokalen CSV-Datei in der ersten Spalte überall eine ...

Batch & Shell

Denkfehler - Syntaxfehler in Shell Script

gelöst Frage von killtecBatch & Shell6 Kommentare

Hallo, ich habe folgendes Script: Nun bekomme ich folgenden Fehler: Ich sehe hier nur keinen Syntaxfehler, sieht ihn jemand ...

Batch & Shell

Power Shell Script zu Bild Suche

gelöst Frage von akoch85Batch & Shell10 Kommentare

Hallo liebe Mitglieder, ich brauche dringend eure Hilfe. Problemstellung: 1.Bilder anhand des Namens z.B. "B1876GH.jpg" aus einem Ordner herausziehen ...

Neue Wissensbeiträge
Windows 7
Updategängelung auf Windows 10, die zweite
Information von Penny.Cilin vor 4 TagenWindows 72 Kommentare

Hallo, da Windows 7 im kommenden Jahr nicht mehr supportet wird, werden Nutzer von Window 7 home premium wieder ...

Internet
EU-Urheberrechtsreform: Zusammenfassung
Information von Frank vor 6 TagenInternet1 Kommentar

Auf golem.de gibt es eine Analyse von Friedhelm Greis, der das Thema EU-Urheberrechtsreform gut und strukturiert zusammenfasst. Zwar haben ...

Microsoft Office

Office365 Schwachstellen bei Sicherheit und Datenschutz

Information von Penny.Cilin vor 7 TagenMicrosoft Office9 Kommentare

Auf Heise+ gibt es einen Artikel bzgl. Office365 Schwachstellen. Das ist noch ein Grund mehr seine Daten nicht in ...

Sicherheit
Schwachstellen in VPN Clients
Tipp von transocean vor 9 TagenSicherheit2 Kommentare

Moin, es gibt Sicherheitslücken bei VPN Clients namhafter Hersteller, wie man hier lesen kann. Gruß Uwe

Heiß diskutierte Inhalte
LAN, WAN, Wireless
Notebooks in Firmenwlan authentifizieren
gelöst Frage von EarthShakerLAN, WAN, Wireless17 Kommentare

Guten Tag, unsere Firma möchte gerne flächendeckend WLAN einführen und hat zu diesem Zweck einen Dienstleister beauftragt. Wir benötigen ...

Peripheriegeräte
PS2 Y-Kabel für Maus+Tastatur an PS2 Combo-Anschluss ASUS Prime X370-A
gelöst Frage von Windows10GegnerPeripheriegeräte12 Kommentare

Hallo, ich bin am Überlegen das o.g. Motherboard anzuschaffen. Da ich aber noch PS/2 für Maus+Tastatur benötige (bei optischen ...

Windows 10
Netzlaufwerk verschwindet (aber nur bestimmter Laufwerksbuchstabe)
gelöst Frage von survial555Windows 1010 Kommentare

Hallo, ich habe ein ganz seltsames Problem. Systemumgebung: Server 2012 R2 als DC und Windows 10 Pro als Clients ...

Windows Server
RDP Meldung vor erzwungener Abmeldung
Frage von DOCTRLWindows Server9 Kommentare

Hallo, Situation: Remotedesktop Farm mit mehreren Servern und einer Domäne. Nutzer werden Montags und Donnerstags automatisch abgemeldet. 15 Minuten ...