PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Verzeichnisliste in Datei ausgeben



sprudell
13.11.2003, 11:11
Mal ne frage,

find /etc -iname '*.conf' | sed -e "s/$/;/" >> test.txt

/etc/samba/smb.conf;
/etc/krb5.conf;
/etc/syslog.conf;
/etc/insserv.conf;
/etc/mysqlaccess.conf;

Der Idealfall müsste so aussehen:

\\192.168.0.1\etc\samba\smb.conf;smb.conf;
\\192.168.0.1\etc\krb5.conf;krb5.conf;
\\192.168.0.1\etc\syslog.conf;syslog.conf;

Ist das Realisierbar? Und wenn ja wie?
währe für jede Hilfe Dankbar!

Gruß Gero

rup
13.11.2003, 14:06
Teil 1:
find /etc -iname '*.conf' | sed -e "s/$/;/" | sed -e "s/\//\\\/g" >> test.txt

Teil 2:
/sbin/ifconfig eth0 | grep "inet" | awk '{ print $2 }' | awk -F ':' '{ print $2 }'

JoBi
13.11.2003, 14:08
find /etc -name "*.conf" -print | sed -e 's/\//\\/g' | \
awk -F"\\" '{print "\\\\192.168.0.1" $0 ";" $NF ";"}' > test.txt

Den Hostnamen kann man selbstverständlich auch mit einbinden, dann lautet die zweite Zeile:
awk -F"\\" '{print "\\\\" ENVIRON["HOSTNAME"] $0 ";" $NF ";"}'


Gruß,
Jobi

rup
13.11.2003, 14:12
@JoBi
warst etwas schneller mit Teil 2 ;-) ich bin aber auch gerade beim schaffen

JoBi
13.11.2003, 14:14
@rup
hab den 2. Teil überlesen gehabt :-/

rup
13.11.2003, 14:15
@JoBi den hab ich nachtraeglich mit dem aendern Butten angefuegt

sprudell
13.11.2003, 15:48
Klappt super :) Danke, nur jetzt noch 1x nerven :)

ich brauch folgendes:

\\192.168.0.1\etc\samba\smb.conf;smb.conf;01.01.20 03;17:30;

also jeweils Datum/Uhrzeit jeder datei dahinter ....

nimrod
13.11.2003, 17:57
man date
/format

hth

JoBi
13.11.2003, 18:41
Da würde ich aber jetzt zu einer etwas leistungsfähigeren Scriptsprache überwechseln, z.B. tclsh:

#!/usr/bin/tclsh
set list [exec find /etc/isdn -name "*.conf"]
foreach a $list {
regsub -all "\/" $a "\\" b
puts "\\\\192.168.0.1$b;[file tail $a];[clock format [file mtime $a] -format "%d.%m.%Y;%H:%M"]"
}

Jobi

sprudell
14.11.2003, 10:02
KLASSE! :)

Nur wie kann ich das ganze jetzt in eine Datei ausgeben?

gruß Gero

JoBi
14.11.2003, 11:28
> datei

Jobi

sprudell
14.11.2003, 11:31
#!/usr/bin/tclsh
set list [exec find /etc/isdn -name "*.conf"]
foreach a $list {
regsub -all "\/" $a "\\" b
puts "\\\\192.168.0.1$b;[file tail $a];[clock format [file mtime $a] -format "%d.%m.%Y;%H:%M"]"
} > text.txt

So Vielleicht ?? oder wie? "aufderleitungsteh" :)

Gruß Gero

sprudell
14.11.2003, 11:42
Hab´s!

bin von der leitung runtergekommen :))

vielen dank mochmals, hast mir sehr geholfen :))

gruß Gero

sprudell
14.11.2003, 12:25
Hi,

folgendes Problem:

could not read "/grafik/Dokumente": no such file or directory
while executing
"file mtime $a"
("foreach" body line 3)
invoked from within
"foreach a $list {
regsub -all "\/" $a "\\" b
puts "\\\\192.168.0.8$b;[file tail $a];[clock format [file mtime $a] -format "%d.%m.%Y;%H:%M"]"
}"
(file "./go" line 6)

Das liegt daran das das Verzeichnis nicht "Dokumente" heisst sondern
"Dokumente und Einstellungen heisst"... kann man das Lösen das er
auch Verzeichnisse/Dateinamen mit Leerzeichen nimmt?

gruß Gero

damager
14.11.2003, 12:46
ja, man muss die leerzeichen maskieren mit einem
"\" imho.

also "Dokumente \und \Einstellungen"

aber keine garantie :-)

sprudell
14.11.2003, 12:49
Hi,

und wie müsste ich das "\" imho. hier einbauen? :

#!/usr/bin/tclsh
set list [exec find /etc/isdn -name "*.conf"]
foreach a $list {
regsub -all "\/" $a "\\" b
puts "\\\\192.168.0.1$b;[file tail $a];[clock format [file mtime $a] -format "%d.%m.%Y;%H:%M"]"
}

sorry bin da nicht grad der profi ;)

gruß Gero

sprudell
14.11.2003, 15:31
Hi,

si ich hab jetzt erstmal wochenende, und daheim ärger mit der
Telekom :( naja wie immer halt :) Montag wieder :)

Gruß Gero

sprudell
18.11.2003, 12:10
Hi,

also bin wieder da :)

#!/usr/bin/tclsh
set list [exec find /etc/isdn -name "*.conf"]
foreach a $list {
regsub -all "\/" $a "\\" b
puts "\\\\192.168.0.1$b;[file tail $a];[clock format [file mtime $a] -format "%d.%m.%Y;%H:%M"]"
}

das script ist ein traum, nur wie muss ich es verändern das er mir auch
leerzeichen (im pfad und dateinamen) übernimmt??

währe für jede hilfe dankbar

gruß Gero

JoBi
18.11.2003, 13:28
Hi,

damager hatte schon recht, die Leerzeichen müssen noch maskiert werden:

#!/usr/bin/tclsh
set list [exec find /etc/isdn -name "*.conf"]
regsub -all { } $list "\\ " list
foreach a $list {
regsub -all "\/" $a "\\" b
puts "\\\\192.168.0.1$b;[file tail $a];[clock format [file mtime $a] -format "%d.%m.%Y;%H:%M"]"
} > datei.txt

soll's dann tun.
Auch alles verstanden, was das Ding so macht? ;-)

Gruß, Jobi

sprudell
18.11.2003, 14:47
Hi,

ah ja super, aber begriffen hab ichs nicht so 100% ;)
aber kommt zeit kommt mehr wissen (hoff ich doch) *g*

gruß Gero