Ändern des ersten Buchstabens jeder Zeile in einer Datei in Großbuchstaben

7

Ich muss den ersten Buchstaben jeder Zeile in einer Datei in Großbuchstaben ändern, z. B.

%Vor%

würde werden:

%Vor%
  • Das Dokument enthält einige spezielle Buchstaben: a, a, a, a, a, a, b, c, d, e, e, é, è, ì, ē, f, g, h, i, i, ,,,, ī,,,,,,,,,,,,,,,,, p, q,,,,,,,,,,,,,,,,,,, ǔ, ü, ǘ, ǜ, ǚ, ǖ, ū, v, w, x, y und z.
  • Die Großbuchstaben dieser Buchstaben sind: A, A, A, A, A, B, C, D, E, E, E, A, A, A, F, G, H, I, I ,,, Ì, Ǐ, Ī, J, K, L, M, N, O, O,,, Ò, Ǒ, Ō, P, Q, R, S, T, U, U, Ú, Ù, Ǔ ,,,,,, X, Y, und Z.

Wie kann ich den ersten Buchstaben jeder Zeile in der Datei in Großbuchstaben ändern?

    
Village 04.04.2012, 07:09
quelle

6 Antworten

11

Verwenden Sie sed :

%Vor%

Kleine Erklärung:

  • Der ^ steht für den Anfang einer Zeile.
  • . entspricht einem beliebigen Zeichen
  • \U wird in Großbuchstaben konvertiert
  • \( ... \) gibt einen Abschnitt an, auf den später verwiesen wird (in diesem Fall als ); Klammern sind hier zu entkommen.

Versuchen Sie nicht , die Ausgabe auf die gleiche Datei in einem Befehl umzuleiten (d. h. > yourfile ), da Sie Ihre Daten verlieren. Wenn Sie in derselben Datei ersetzen möchten, dann überprüfen Sie die Antwort von joelparkerhenderson.

    
The Nail 04.04.2012, 07:14
quelle
5
%Vor%     
Vijay 04.04.2012 07:20
quelle
5

Es gibt ein paar Sed Antworten mit s/^\(.\)/\U/ . GNU sed hat auch eine \u -Direktive, die nur den nächsten Großbuchstaben ändert, also

%Vor%

Obwohl das erste Zeichen in einer Zeile ein Leerzeichen ist, wird kein Großbuchstabe angezeigt, also

%Vor%     
glenn jackman 04.04.2012 12:52
quelle
2

Um die Datei an Ort und Stelle zu ändern:

%Vor%     
joelparkerhenderson 04.04.2012 07:19
quelle
1

Sie können Ihre Sonderzeichen an Stelle von a-z und A-Z setzen

%Vor%     
pizza 04.04.2012 09:57
quelle
0

Reine bash :

%Vor%

Test / demo (entfernen Sie den Code nach done für eine vollständigere Ausgabe):

%Vor%

Ausgabe:

%Vor%     
agc 22.06.2017 13:33
quelle

Tags und Links