Bash Script xlsx auslesen?

2 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

warum als Bash-Script?
Mit tclsh kann man so etwas viel lesbarer schreiben.
Installiere tcl, schreibe den Code in eine Datei, mache sie ausführbar chmod 755 <Datei-Name> und rufe sie auf

./<Datei-Name>  <xlsx-Datei>

Hier der  Code  ( ohne Komfort )

#!/bin/bash
# \
exec tclsh "$0" "$@"

set fp [open $argv r ] ; # Datei öffnen, Dateiname wurde als Parameter übergeben

while { ![eof $fp] } { set line [gets $fp ] ; # lesen einer Zeile aus der Datei
set list [split $line {} ] ; # jedes Zeichen der Zeile separieren
set chars [llength $list ] ; # Anzahl der Zeichen bestimmen
set firma "" ; # Variable für das erste Wort
set i 0 ; # Index auf Anfang
while { [lindex $list $i ] != " " && $i < $chars } { append firma [lindex $list $i ] ; incr i } ; # alle Zeichen bis zum ersten Leerzeichen in firma
while { [lindex $list $i ] == " " && $i < $chars } { incr i } ; # alle Leerzeichen überspringen
set method [lindex $list $i ] ; # Variable für Methode definieren und mit erstem Zeichen füllen
while { [lindex $list $i ] != " " && $i < $chars } { append method [lindex $list $i ] ; incr i } ; # alle Zeichen bis zum nächsten Leerzeichen in methode
while { [lindex $list $i ] == " " && $i < $chars } { incr i } ; # alle Leerzeichen überspringen
set link [lindex $list $i ] ; # Variable für Link definieren und mit erstem Zeichen füllen
while { [lindex $list $i ] != " " && $i < $chars } { append link [lindex $list $i ] ; incr i } ; # alle Zeichen bis zum Ende nächsten Leerzeichen oder "Ende" in link

# Daten ausgeben , nachfolgend die Domain

puts $link

}
close $fp
Woher ich das weiß:Berufserfahrung – openSuSE seit 1995

DonFa 
Beitragsersteller
 19.09.2016, 12:51

Hey, danke für die Hilfe, doch die Aufgabe wurde mir so von meinem Unterweiser gestellt. Meine Frage ist auch nur ein kleiner ausschnitt des an sich geforderten Programms. Doch ist es irgendwie möglich ohne etwas zu installieren etc. meine Frage zu lösen o:

0
guenterhalt  19.09.2016, 13:02
@DonFa

so hört sich das ganz anders an.

Ohne etwas zu installieren? Linux ist frei konfigurierbar und die bash gilt zwar als Standard-Shell.
Was aber wenn sich jemand erlaubt hat diese Shell nicht zu installieren?
Was machst du dann, wenn zusätzliches "verboten" ist?

 

0
DonFa 
Beitragsersteller
 19.09.2016, 13:06
@guenterhalt

Aktuell schreibe ich das Script auf einem Notebook meines Unterweisers, welches aus Sicherheitsvorkehreungen keine Adminrechte, sowie blockierte USB Ports hat. Es soll jedoch auch später möglich sein, es auf einem Server laufen zu lassen.(Als anfänger das direkt auf dem Server zu schreiben, wäre etwas gefährlicher) (Kurzfassung des gesamten Scripts: Es soll zwei Datein vergleichn und die jeder Datei einzigartigen Daten ausgeben)

0
guenterhalt  19.09.2016, 19:30
@DonFa

das mit Installieren habe ich geschrieben, weil ich Mint nicht kenne.
Bei openSuSE ist tcl ( Aufruf mit tclsh ) bei der Standard-Installation bereits dabei. Vielleicht auch bei Mint.
Keine Admin-Rechte ist schon o.k. . Warum aber keine USB-Ports ?
Hat der die Module (Treiber)  entfernt ?

0
DonFa 
Beitragsersteller
 20.09.2016, 08:10
@guenterhalt

Das sind Firmen Notebooks. Es sollen keine USB Geräte (Außer Maus) angeschlossen werden, da ja Schadware übertragen werden könnte.

0

Schau mal hier: http://stackoverflow.com/questions/10557360/convert-xlsx-to-csv-in-linux-command-line Allgemein gibt Google für "parse xlsx bash" recht viele Treffer.

Woher ich das weiß:Hobby – Linux-Nutzer seit 2006

DonFa 
Beitragsersteller
 19.09.2016, 11:19

Mein Problem ist, dass ich auf diesem Notebook nur User und kein Admin bin. Ich habe keine Berechtigungen um etwas zu installieren. :/

0
LeBonyt  19.09.2016, 11:53
@PhotonX

Kann man nur machen, wenn  alle Abhängigkeiten zur Kompilierung von gnumetrics erfüllt sind. Beim Kompilieren muss man hier und da noch ein dev-Paket installieren. Und wenn der Fragesteller keine root Rechte wird es kompliziert.

0
PhotonX  19.09.2016, 12:03
@LeBonyt

Ja, das stimmt, ggf. müssen auch Abhängigkeiten kompiliert und im gleichen Benutzerverzeichnis installiert werden. Aber ich denke, so viele ungewöhnliche Abhängigkeiten hat Gnumerics nicht. Habe so schon mal eine neuere Version von Gnuplot installiert, weil die dort vorhandene veraltet und buggy war.

1