Concatenation csh

Fermé
LCoileux - 21 févr. 2008 à 13:48
Darkito Messages postés 1191 Date d'inscription vendredi 7 décembre 2007 Statut Membre Dernière intervention 26 mai 2010 - 22 févr. 2008 à 22:19
Bonjour,
je débute en csh, et j'aurais voulu savoir comment rajouter une chaine de caractères au début d'un fichier non vide. Je sais que la commande >> ajoute une chaine, mais en fin de fichier.
De plus, est-il possible de copier un fichier texte en supprimant une certaine ligne de ce fichier ?
Merci de votre aide.

6 réponses

Darkito Messages postés 1191 Date d'inscription vendredi 7 décembre 2007 Statut Membre Dernière intervention 26 mai 2010 545
21 févr. 2008 à 14:08
Bonjour,
Pour supprimer une ligne :
Darkito >cat totof
toto un
titi deux
tata trois
Darkito >sed '2d' totof
toto un
tata trois



(ici on supprimera le 2ème ligne)
0
Darkito Messages postés 1191 Date d'inscription vendredi 7 décembre 2007 Statut Membre Dernière intervention 26 mai 2010 545
21 févr. 2008 à 14:16
Pour ajouter une chaine de caractère

Darkito >cat totof
toto un
titi deux
tata trois
Darkito > sed '1 s@\(.*\)@Ajout\n\1@' totof
Ajout
toto un
titi deux
tata trois

0
Merci bien
et comment fait-on pour rediriger cette commande dans ce fichier ? J'essaie avec les pipe mais pour l'instant j'y arrive pas...
0
Darkito Messages postés 1191 Date d'inscription vendredi 7 décembre 2007 Statut Membre Dernière intervention 26 mai 2010 545
21 févr. 2008 à 14:47
Pour la redirection dans le fichier d'origine, il y cette discussion : http://www.commentcamarche.net/forum/affich 4911956 sed en sortie sur fichier identique
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Darkito Messages postés 1191 Date d'inscription vendredi 7 décembre 2007 Statut Membre Dernière intervention 26 mai 2010 545
22 févr. 2008 à 13:47
Pour l'insertion, il y a même plus simple (je viens de découvrir ça à l'instant)
Darkito >cat totof
toto un
titi deux
tata trois
Darkito >sed '1 i\Ajout' totof
Ajout
toto un
titi deux
tata trois

0
Merci beaucoup
et dis moi, comment dois-je faire pour comparer la 1ere ligne d'un fichier avec une phrase ?
Quand je fais par exemple

if (`head -1 $fichier1`=="blablabla") then
echo "vrai"
else echo "faux"
endif

il verifie bien si la premiere ligne est "blablabla". Mais si c'est "blablabla bla", il me repond faux; et je n'y arrive pas en faisant "...== "blablabla *".

Bref, je voudrais qu'il regarde si le premier mot est bien "blablabla", et quel que soit la suite. Si je met "...=="blablabla*"", ca ne marche pas. Comment faire ?
0
Darkito Messages postés 1191 Date d'inscription vendredi 7 décembre 2007 Statut Membre Dernière intervention 26 mai 2010 545
22 févr. 2008 à 22:19
J'ai linux qu'au boulot donc je peux pas vérifier
il doit y avoir plus simple avec une expression régulière mais tu peux essayer :
if(`head -1 $fichier1 | grep blablabla >/dev/null`) then
0