![]() |
|
|
google unix.com
|
|||||||
| Forums | S'inscrire | Forum Rules | Liens | Albums | FAQ | Liste des membres | Calendrier | Recherche | Aujourd'hui, les postes | Marquer les forums comme lus |
| De programmation et de script Shell Posez vos questions à propos de KSH, CSH, SH, BASH, PERL, PHP, SED, awk et d'autres scripts shell et les langages de script shell ici. |
Plus d'UNIX et Linux Forum Sujets Vous trouverez peut-être utile
|
||||
| Fil | Thread Starter | Forum | Réponses | Last Post |
| Insérer du texte au début de fichier | netwolf | High Level Programming | 3 | 05-27-2008 01:20 PM |
| Comment insérer du texte au milieu d'un fichier | kartikkumar84 @ g | UNIX pour les nuls Questions et réponses | 6 | 05-10-2008 03:35 PM |
| insérer un texte dans un fichier log | Bucci | De programmation et de script Shell | 4 | 05-09-2007 08:19 AM |
| insérer du texte en début de fichier | jimbob | De programmation et de script Shell | 1 | 09-22-2006 06:46 PM |
| insérer un texte dans un fichier dynamique | Sunbird | UNIX pour les nuls Questions et réponses | 2 | 11-05-2001 10:58 AM |
![]() |
|
|
LinkBack | Thread Tools | Recherche sur ce Thread | Rate Thread | Modes d'affichage |
|
|
|
||||
|
De l'utilisation de la ligne de commande
(Notez que ces derniers doivent être complétés sur des lignes distinctes.) Ce sera à insérer à la première ligne du fichier. sed '1 I \ votre texte est ici 'nom_fichier> new_filename Cela permettra d'ajouter à la dernière ligne du fichier. sed '$ a \ votre texte est ici 'nom_fichier> new_filename Notez également que, avec sed vous avez à diriger la production et de renommer le fichier. So 'new_filename mv file_name' quand vous avez fini avec ces commandes. |
|
||||
|
Cool cela semble fonctionner. Le problème que j'ai maintenant, c'est que la chaîne, je suis en train d'insérer contient le caractère qui est en conflit avec la sed '1 I \ ligne. Ordaniril ils ignorés.
Si je tente d'échapper à cette chaîne: sed '1 I \ EXEC PR_DbConfigStart \ 'test.txt \', \ "10 \ ', \' DESCRIPTION \ '\ GO '<$ FILENAME> $ TMPFILENAME Je reçois ce message d'erreur erreur de syntaxe à la ligne 8: `''inégalée si j'essaie de construire la chaîne de caractères dans une variable d'environnement et de compter sur la substitution, la chaîne ne semble nt à remplacer. DBCONFIGSTART \u003d "EXEC PR_DbConfigStart 'test.txt','10 ',' description '\ ONG" sed '1 I \ $ DBCONFIGSTART '<test2.txt la production de ce produit $ DBCONFIGSTART reste du fichier texte. Quelqu'un at-il une idée comment je peux résoudre ce |
|
||||
|
Généralement en unix, vous aurez besoin d'échanger des guillemets et apostrophes - lorsque l'une ou l'autre sont utilisés dans .. comme ça.
Donc, avec la sed utiliser la commande: sed "1i \ votre texte a des apostrophes dans l'ici "nom_fichier> new_filename |
|
||||
|
Ouch,
J'obtiens l'erreur: sed: Commande brouillé: 1iEXEC PR_DbConfigStart 'test.txt','10 ',' description ' quand j'ai essayer. Voici le script en utilisant im #! / usr / bin / ksh FILENAME \u003d test2.txt TMP \u003d. $ TMP TMPFILENAME \u003d $ FILENAME $ TMP sed -e "1i \ EXEC PR_DbConfigStart 'un texte','10 ',' description ' "<$ FILENAME> $ TMPFILENAME |
|
||||
|
Qu'en est-il de la déclaration qui ajoute des données à la fin du fichier?
sed "$ a \ \ PR_DbConfigEnd $ FILENAME "<$ FILENAME> $ TMPFILENAME J'ai le message d'erreur: sed: Commande brouillé: \ Si je retire la deuxième backslash: sed "$ a \ PR_DbConfigEnd $ FILENAME "<$ FILENAME> $ TMPFILENAME J'obtiens ce message d'erreur: sed: Commande brouillé: PR_DbConfigEnd test2.txt |
![]() |
| Bookmarks |
| Thread Tools | Recherche sur ce Thread |
| Modes d'affichage | Rate this thread |
|
|