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, 5240 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

Hilfe bei Shell Script zum verschieben von Ordnern

gelöst Frage von mqlmannBatch & Shell14 Kommentare

Hallo, ich versuche gerade ein Script zu bauen, das folgendes können soll: 1. Einen bestimmten Pfad nach Ordnern mit ...

Batch & Shell

Shell dialog script anpassen

gelöst Frage von Tealk144Batch & Shell2 Kommentare

Also ich habe mir ein kleines Script zusammengeschrieben mit der "dialog" Funktion, nun würde ich gern wissen ob man ...

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 ...

VB for Applications

Sheet in hinter letzten, verwenderten Spalte einfügen

gelöst Frage von aivilonVB for Applications9 Kommentare

Moin Zusammen Ausgangslage: Ich habe zwei Sheets. Sheet "SCData" ist Variabel in der Grösse. Darin befindet sich eine Pivot, ...

Neue Wissensbeiträge
Sicherheit
Sicherheitsrisiko: Die Krux mit 7-Zip
Information von kgborn vor 7 StundenSicherheit

Bei vielen Anwendern ist das Tool 7-Zip zum Entpacken von Archivdateien im Einsatz. Die Software ist kostenlos und steht ...

Internet

Datendealing im WWW Tracking Methoden immer brutaler

Information von sabines vor 16 StundenInternet

Interessanter Artikel zum Thema Tracking im WWW und die immer "besseren" Methoden des Trackings. Professor Arvind Narayanan (Princeton-Universität) betreibt ...

Erkennung und -Abwehr

Ups: Einfaches Nullzeichen hebelte den Anti-Malware-Schutzt in Windows 10 aus

Information von kgborn vor 1 TagErkennung und -Abwehr

Windows 10 ist das sicherste Windows aller Zeiten, wie Microsoft betont. Insidern ist aber klar, das es da Lücken, ...

Windows 10

Windows 10 on ARM: von Microsoft entfernte Info - Klartext, was nicht geht

Information von kgborn vor 1 TagWindows 10

Windows 10 on ARM ist ja eine neue Variante, die Microsoft im Verbund mit Geräteherstellern am Markt etablieren will. ...

Heiß diskutierte Inhalte
Server
Route-Befehl Unterstützung (unter CMD)
gelöst Frage von FKRR56Server36 Kommentare

Guten Tag , i.M. habe ich Probleme über den CMD-Route-Befehl ein Routing auf einen entfernten Server zuzulassen. Der Server ...

Windows 10
Windows 10 (1709) Tastur und Maus wieder einschalten?
Frage von LochkartenstanzerWindows 1028 Kommentare

Moin, Ich habe von einem Kunden einen Win10-Rechner bekommen, bei dem weder Tastatur noch Maus geht. Die Hardware funktioniert ...

Microsoft
TV-Tipp: Das Microsoft-Dilemma
Information von kgbornMicrosoft17 Kommentare

Aktuell gibt es in Behörden und in Firmen eine fatale Abhängigkeit von Microsoft und dessen Produkten. Planlos agieren die ...

Webbrowser
Welcher Browser ist der Beste?
Frage von justtinWebbrowser15 Kommentare

Hallo Leute Ich habe eine interessante Frage. Mich wurde mal interessieren welcher Browser ist eure meinung nach der beste? ...