Ändern Sie die Groß- / Kleinschreibung des ersten Buchstabens in jeder Zelle der Tabelle

8

Ich habe viele Zellen, die ich konvertieren möchte, so dass der erste Buchstabe in jeder Zelle großgeschrieben wird. Z.B. cook, chef, fireman wird Cook, Chef, Fireman .

  • Ich habe die Tabelle in OpenOffice.org, aber es scheint nur Optionen für "alle Großbuchstaben" oder "alle Kleinbuchstaben" zu haben.
  • Ich kann es in OpenOffice.org bearbeiten oder in eine CSV exportieren und die CSV mit einem BASH-Skript bearbeiten, wenn OpenOffice.org das nicht kann.

Wie kann ich den ersten Buchstaben jeder Zelle in der Tabelle in Großbuchstaben ändern?

    
Village 04.01.2012, 00:23
quelle

10 Antworten

3

Ich habe ein awk-Skript, das tun wird, was Sie wollen (denke ich).

Hier ist meine Testeingabe (test.input):

%Vor%

Mein awk-Skript (up.awk):

%Vor%

Wie ich das Skript ausführe: awk -f up.awk test.input >test.output

Die Ausgabe in meinem test.output:

%Vor%     
Dennis 04.01.2012, 02:42
quelle
8

Ich mache diese Aufgabe zufällig. Sie müssen Spreadsheet :: ParseExcel und Spreadsheet::WriteExcel Module.

%Vor%     
jchips12 04.01.2012 03:29
quelle
7

Vielleicht müssen Sie nur auf eine neuere Version updaten. Ich benutze LibreOffice 3.4.4 und ich sehe Format -> Change Case -> Sentence case , was ich genau sagen würde, was Sie brauchen.

    
jcollado 04.01.2012 00:34
quelle
6

Ist Perl eine Option? Es gibt ein Modul im CPAN-Archiv namens Spreadsheet :: WriteExcel kann auch mit OpenOffice-Tabellen umgehen.

Sie lesen grundsätzlich in der Tabelle, durchsuchen die Zellen, ändern die gewünschten und erstellen eine neue -Tabelle mit den geänderten Daten. Sie können eine Excel-Tabelle nicht direkt ändern. Ich weiß nicht, ob das für OpenOffice-Dokumente gilt.

Ich habe das vorher schon benutzt, um Excel-Tabellen zu lesen und zu schreiben, aber das war schon eine Weile her. Dieses Modul kann jedoch mit Ihrer Situation umgehen, ohne dass Sie zuerst die Tabelle im CSV-Format speichern müssen.

    
David W. 04.01.2012 02:09
quelle
3

Perl-Einzeiler:

%Vor%

Sie können auch die direkte Bearbeitung mit dem Schalter -i verwenden. Z.B. perl -pi.bak -we ...

Längere Version mit Text :: CSV_XS . Dieses Modul behandelt (wahrscheinlich) Ihre csv-Dateien mit mehr Sorgfalt.

%Vor%

Führen Sie es mit: perl script.pl file.csv > fileout.csv

    
TLP 04.01.2012 10:51
quelle
2

Du könntest mit Python oder einer anderen Sprache etwas ziemlich Dodges machen.

%Vor%

Dies setzt voraus, dass keines der Felder in Anführungszeichen eingeschlossen ist, da es einfach alles nach einem Komma auflistet.

Wenn Sie dies nicht tun, sollten Sie tatsächlich eine CSV-Bibliothek verwenden.

    
richo 04.01.2012 00:32
quelle
2

Wenn Sie OOo 3.3 verwenden oder auf OOo 3.3 aktualisieren, gibt es dafür Optionen.
Markieren Sie alle Zellen, die Sie beeinflussen möchten, und wählen Sie dann Format -> Change Case -> Sentence case und voila! Sehen Sie, ob das den Trick für Sie macht?

    
Mattias Ahnberg 04.01.2012 03:00
quelle
1

Exportieren Sie es als csv. Dann mach so etwas.

%Vor%     
joel3000 04.01.2012 04:39
quelle
1

Sie können ein kleines gawk und sed combo schreiben, um Titel zu erhalten -

%Vor%

Test:

%Vor%

Offensichtlich ist dies nicht die perfekte Lösung, Sie müssen es vielleicht ein wenig anpassen, je nachdem, wie viele Datenzeilen Sie haben oder wollen. Änderungen an NR%3 sollten gut genug sein.

    
jaypal singh 04.01.2012 05:23
quelle
1

Dies könnte für Sie funktionieren:

%Vor%

Wahrscheinlich GNU sed spezifisch.

    
potong 04.01.2012 10:35
quelle