VIVEZ LE
FOOTBALL !

Posez votre question Signaler

Upper Case de la premiere lettre [Résolu]

Poireau007 70Messages postés 5 février 2009Date d'inscription 21 mars 2012Dernière intervention - Dernière réponse le 22 sept. 2011 à 14:15
Bonjour à tous,
Encore une qustion de noob desolé ^^
Je voudrais faire un upper case sur la premiere lettre de chaque ligne...
J'ai trouvé de la doc pour faire un upper case sur toute la ligne :
cat input | tr -t '[:lower:]' '[:upper:]' >! output 

ou un lower case sur toute la ligne :
cat input | tr -t '[:upper:]' '[:lower:]' >! output 

mais rien sur le premiere lettre...
PS: Il fonctionne l'outil rechercher du forum ???
Lire la suite 

Upper Case de la premiere lettre »

6 réponses
Réponse
+2
moins plus
et un bete sed 's/^./\u&/' ca devrait mettre la premiere lettre de la ligne en majuscule..
Ajouter un commentaire
Réponse
+1
moins plus
ah ben non ca marche pô =) lol

bon ca ca fonctionne c'est sur !

$echo test | perl -pe 's/^(.{0})(.)/$1\U$2/;'


Le zéro correspond à la 1ere lettre, si on le remplace par un '1' c'est la 2eme lettre qui est en majuscule,
simpa !
Ajouter un commentaire
Réponse
+0
moins plus
une solution de bourrin consisterait à
pour chaque ligne, la copier dans un fichier tampon
a partir de ce fichier utiliser deux awk, un pour extraire la premiere lettre, un pour extraire la seconde chacun redirigés vers d'autres fichiers tampons (je préfere les fichiers tampons au commandes pipées, au moins, on sait toujours exactement ce qu'on fait)
traiter le premier fichier avec un upper, et le second avec un lower si besoin
concatener les deux fichiers en une ligne
et rediriger cette ligne vers le fichier de destination

je l'ai dit, c'est une solution de bourrin, et je ne m'y connais pas assez pour te dire précisément quelles commandes utilisées
Ajouter un commentaire
Réponse
+0
moins plus
Merci pour ta réponse dna.factory =)
En fait je n'ai pas trop compris ta méthode (ben oui je suis vraiment noob), je ne connais pas bien awk... je continue de chercher !
Ajouter un commentaire
Réponse
+0
moins plus
J'ai la solution =)

awk '
BEGIN { upper = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
lower = "abcdefghijklmnopqrstuvwxyz"
}
{
FIRSTCHAR = substr($1, 1, 1)
if (CHAR = index(lower, FIRSTCHAR))
$1 = substr(upper, CHAR, 1) substr($1, 2)
print $0
}' monfichier.txt

voilou
dna.factory- 5 févr. 2009 à 11:46
on n'est jamais aussi bien que par soi même
merci d'avoir indiqué la solution en tout cas
Ajouter un commentaire
Ce document intitulé « Upper Case de la premiere lettre » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?