Reserver un nombre de caractere a un champ
Résolu
grisfff
-
grisfff -
grisfff -
Bonjour,
je debute en shell et j'ai un pti souci a partager ac vous
j'ai en sortie d'un script shell une ligne de la forme:
a | bb | c | ddd | e | f
je voudrai prendre le champ "ddd" lui reserver 7 caractere entre les " | ", en gros le remplacer par " ddd"
sachant ke les champs sont differents a chaque foi
merci
je debute en shell et j'ai un pti souci a partager ac vous
j'ai en sortie d'un script shell une ligne de la forme:
a | bb | c | ddd | e | f
je voudrai prendre le champ "ddd" lui reserver 7 caractere entre les " | ", en gros le remplacer par " ddd"
sachant ke les champs sont differents a chaque foi
merci
A voir également:
- Reserver un nombre de caractere a un champ
- Caractère ascii - Guide
- Caractère spéciaux - Guide
- Caractere speciaux - Guide
- Nombre de jours entre deux dates excel - Guide
- Caractere vide - Guide
8 réponses
Salut,
Il faudrait peut être nous montrer la commande qui formate ta ligne de sortie, non ?
A la limite nous montrer ton script ainsi que le(s) fichier(s) traité(s) en aval, histoire qu'on sache un peu comment s'y prendre ;-))
Il faudrait peut être nous montrer la commande qui formate ta ligne de sortie, non ?
A la limite nous montrer ton script ainsi que le(s) fichier(s) traité(s) en aval, histoire qu'on sache un peu comment s'y prendre ;-))
okey :)
j'ai un fichier log de plusieur lignes de la meme forme que "a | bb | c | ddd | e | f" sauf que le champ ddd s'ecrit déja sur 7 caractere " a | bb | c | ddd | e | f
je fait dans mon script
cat fichier.log | while read ligne
do
if #condition pour garder que klk ligne# ; then
echo $ligne >> fichier2.log
fi
done
echo $(tail -1 fichier2.log) #afin de recuperer la derniere ligne des fichiers gardé
tout marche bien sauf que dans la ligne recuperé dés quil y a plusieurs espaces qui se suivent ça se réduit en un seul (apparament c'est cat qui fait cela)
j'espere que j'ai bien resumé la situation
si vous avez une solution au niveau de cat :) ce serai cool
sinon si je peu remplacer "ddd" par " ddd"
j'ai un fichier log de plusieur lignes de la meme forme que "a | bb | c | ddd | e | f" sauf que le champ ddd s'ecrit déja sur 7 caractere " a | bb | c | ddd | e | f
je fait dans mon script
cat fichier.log | while read ligne
do
if #condition pour garder que klk ligne# ; then
echo $ligne >> fichier2.log
fi
done
echo $(tail -1 fichier2.log) #afin de recuperer la derniere ligne des fichiers gardé
tout marche bien sauf que dans la ligne recuperé dés quil y a plusieurs espaces qui se suivent ça se réduit en un seul (apparament c'est cat qui fait cela)
j'espere que j'ai bien resumé la situation
si vous avez une solution au niveau de cat :) ce serai cool
sinon si je peu remplacer "ddd" par " ddd"
cat fichier.log | while read ligne do if #condition pour garder que klk ligne# ; then echo "$ligne" >> fichier2.log fi done echo $(tail -1 fichier2.log)Ça devrait régler ton problème ;-))
oui j'avais pensé a ça ("$ligne") mais rien ne change , les groupements d'espaces sont tjr reduits a un seul ;-/
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question[tmpfs]$ cat plop a | bb | c | ddd | e | f [tmpfs]$ cat plop |while read line;do echo $line;done # sans guillemets a | bb | c | ddd | e | f [tmpfs]$ cat plop |while read line;do echo "$line";done # avec guillemets a | bb | c | ddd | e | f [tmpfs]$;-\
ahhhhh ouiiiiiiiiii
DSL, le probleme vien de echo $(tail -1 fichier2.log)
DSL, le probleme vien de echo $(tail -1 fichier2.log)
bash-3.00$ cat plop.log aaa aaa a a a bash-3.00$ echo $(tail -1 plop.log) a a a