Script pour insérer des espaces ds lignes
Fermé
ninou
-
22 déc. 2008 à 16:26
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 22 déc. 2008 à 22:14
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 22 déc. 2008 à 22:14
A voir également:
- Script pour insérer des espaces ds lignes
- Insérer liste déroulante excel - Guide
- Insérer signature word - Guide
- Script vidéo youtube - Guide
- Emulateur ds mac ✓ - Forum MacOS
- Insérer table des matières word - Guide
2 réponses
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 567
22 déc. 2008 à 22:14
22 déc. 2008 à 22:14
Salut,
Une approche banale et bien sûr facile en C
Une approche banale et bien sûr facile en C
lami20j@debian:~/trash$ cat fichier.txt
Je voudrais savoir s'il est possible d'ajouter des espaces dans une ligne via un script.
J'ai un fichier txt de plusieurs milles lignes, je dois ajouter après le 20ème caratère
du début de ma ligne, 10 espaces et ceci à toutes les lignes.... afin que ce fichier
ainsi transformé soit analysé sdans un autre logiciel. On fait toutes les lignes manuellements
mais c'est très fastidieux. Pour la petite histoire, je suis technicienne info et non programmatrice....
lami20j@debian:~/trash$ cat ccm16_ajoutespace.c
#include<stdio.h>
#include<string.h>
int main()
{
FILE *F,*FRESULT;
char espaces[]=" ";/*10 espaces*/
char s[1024];
char s1[21];
char s2[1005];
int i,j;
F=fopen("fichier.txt","r");
FRESULT=fopen("fichier_resultat.txt","w");
while(fgets(s,1024,F) != NULL){
for(i=0;i<20;++i)
s1[i]=s[i];
s1[i]='\0';
for(j=0,i=20;i<strlen(s) && s[i]!='\0';++i,++j)
s2[j]=s[i];
s2[j]='\0';
fprintf(FRESULT,"%s%s%s",s1,espaces,s2);
}
fclose(F);
fclose(FRESULT);
return 0;
}
lami20j@debian:~/trash$ gcc ccm16_ajoutespace.c -g
lami20j@debian:~/trash$ ./a.out
lami20j@debian:~/trash$ cat fichier_resultat.txt
Je voudrais savoir s 'il est possible d'ajouter des espaces dans une ligne via un script.
J'ai un fichier txt de plusieurs milles lignes, je dois ajouter après le 20ème caratère
du début de ma ligne , 10 espaces et ceci à toutes les lignes.... afin que ce fichier
ainsi transformé soi t analysé sdans un autre logiciel. On fait toutes les lignes manuellements
mais c'est très fast idieux. Pour la petite histoire, je suis technicienne info et non programmatrice....
lami20j@debian:~/trash$
22 déc. 2008 à 16:35
Par contre en python oui, 3 lignes:
fp = open("mon_fichier.txt", "r") for line in fp: print line[:20] + (" " * 10) + line[20:]22 déc. 2008 à 18:16
sed -i.bak 's/^.\{20\}/&\t\t/' fichier.txtSinon :sed -i.bak 's/^.\{20\}/& /' fichier.txt;-))