UNIX Kommando, dass Daten von der STDIN liest, alle Kleinbuchstaben durch Großbuchstaben ersetzt und auf STDOUT ausgibt?

... komplette Frage anzeigen

5 Antworten

übersetze dieses Stück Programm mit dem c++ Compiler,
das erzeugte Binary heißt dann a.out ( kann beliebig umbenannt werden)

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>

int main ( int argc , char **argv )
{  int ch;
   while ( 1) { ch= getc(stdin);
                if (ch == '\\n' ) exit(0);
                ch= toupper(ch);
                fwrite(&ch,1,1,stdout); fflush(stdout);
                  }

}
Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von JamesOffice
10.06.2016, 18:49

Danke für die Antwork! Aber ich bräuchte eine UNIX Kommando! Also kein Code! Sowas hier z.B tr a-z A-Z >&1 aber ich bin mir nicht sicher das das stimmt!

0

Kurz und schmerzlos:

cat |tr a-zäöü A-ZÄÖÜ

... Ende mit Ctrl C

Das mit den Umlauten habe ich übernommen, wußte es selbst nicht.

Viel kürzer dürfte es wohl nicht gehen!

System: Ubuntu 12.04 LTS ... sollte aber in jeder beliebigen Distribution funktionieren, da die beiden Befehle zu den GNU-Tools gehören.

Antwort bewerten Vielen Dank für Deine Bewertung

Hallo

und zwar brauche ich ein UNIX Kommando, dass Daten von der STDIN liest,
alle Kleinbuchstaben durch Großbuchstaben ersetzt und auf STDOUT
ausgibt?

Welches hättest Du denn gerne?:

echo "AbCdEf" | sed -e 's/\\(.*\\)/\\U\\1/'

oder

echo "AbCdEf" | tr '[:lower:]' '[:upper:]'

oder

echo "AbCdEf" | sed 's/.*/\\U&/'

oder

echo "AbCdEf" | awk '{print toupper($0)}'

oder

echo "AbCdEf" |perl -pe 'tr/a-z/A-Z/'

Linuxhase

Antwort bewerten Vielen Dank für Deine Bewertung
tr a-z A-Z

Geht auch mit Umlauten:

tr a-zäöü A-ZÄÖÜ
Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von JamesOffice
10.06.2016, 18:51

Das klingt gut! könnte ich z.B sowas schreiben tr a-z A-Z >&1 ?

1

Check mal

awk '{print toupper($0)}'
Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?