Pages : 1
#1 Le 27/11/2013, à 15:51
- Oma
aide script pour gros nul
bonjour,
j'ai un fichier avec une information par ligne (environ 100 lignes), je voudrais copier le 2eme ligne puis la première sur une ligne jusqu'a la fin.
Une petite aide!!! Merci
Hors ligne
#2 Le 27/11/2013, à 15:55
- inbox
Re : aide script pour gros nul
Un problème résolu ? Indiquez le en modifiant le titre du sujet.
Hors ligne
#3 Le 27/11/2013, à 16:02
- Oma
Re : aide script pour gros nul
je n'arrive pas a faire passer la ligne 2 a la place de la linge 1....surtout avec un sed !!!!
Hors ligne
#4 Le 27/11/2013, à 16:12
- inbox
Re : aide script pour gros nul
Dans ta question d'origine, tu ne parles pas de remplacer la ligne 1 par la 2ème !!!
Pour continuer sur ma 1ère réponse, il existe tout bêtement le paquet dos2unix.
Un problème résolu ? Indiquez le en modifiant le titre du sujet.
Hors ligne
#5 Le 27/11/2013, à 16:16
- Oma
Re : aide script pour gros nul
non je parle de copier la ligne 2 puis la ligne 1 sur une ligne
ligne 1: toto est a la plage
ligne2: café
etc....
résultat: café toto est a la plage
Hors ligne
#6 Le 27/11/2013, à 16:35
- pingouinux
Re : aide script pour gros nul
Bonjour,
Si le nombre de lignes du fichier est impair, la dernière ligne est omise :
sed -n 'h;n;G;s/\n/ /p' fichier
Ajouté :
Si le nombre de lignes du fichier est impair, la dernière ligne apparaît aussi :
awk '{if(NR%2){lig=$0}else{print $0" "lig}nr=NR}END{if(nr%2){print}}' fichier
Dernière modification par pingouinux (Le 27/11/2013, à 18:07)
Hors ligne
#7 Le 27/11/2013, à 17:56
- Olivier_Dev
Re : aide script pour gros nul
Bonjour
as tester, je suis pas sur une bécane linux actuellement.:/
modifié :
#!/bin/bash
outputfile="output"
ispair=0
# Lecture du fichier ligne par ligne
while read line
do
if [ $ispair -eq "1" ]
then
# dans le cas ou nous sommes sur la deuxieme ligne
echo $line $firstline >> $outputfile;
ispair=0
firstline=""
else
# nous somme sur la premiére ligne
firstline=$line;
ispair=1
fi
done < input.txt;
exit 0
Dernière modification par Olivier_Dev (Le 27/11/2013, à 19:54)
Hors ligne
#8 Le 27/11/2013, à 18:24
- Oma
Re : aide script pour gros nul
le sed est nikel ... remarque ce ma permis de voire que mon fichier était mal foutu des fois la ligne 2 et en 1 et vice et versa.....
encore un bonne prise de tête en vu.
Donc je vais le pense sur le dernier script shell qui va plus de mettre de faire de comparaison ...
enfin j’espère ....:)
Hors ligne
#9 Le 27/11/2013, à 20:02
- Olivier_Dev
Re : aide script pour gros nul
pingouinux sympa les versions sed et awk.
Hors ligne
#10 Le 27/11/2013, à 20:16
- pingouinux
Re : aide script pour gros nul
Voici une version en python3, qui sort aussi la dernière ligne s'il y en a un nombre impair :
#!/usr/bin/python3
impair=0
while True :
try : lig=input(); impair=1-impair
except EOFError :
if impair : print(lig0)
break
if impair : lig0=lig
else : print(lig+' '+lig0)
À utiliser ainsi :
./mon_script.py <fichier
Hors ligne
#11 Le 28/11/2013, à 20:55
- Olivier_Dev
Re : aide script pour gros nul
hum, pour la version python je suis pas fan.
en Python:
#!/usr/bin/env python
import sys
if len(sys.argv) == 2:
file_input = sys.argv[1]
try:
file_content = open(file_input, "r").readlines()
except IOError, e:
print e
sys.exit()
traitement = [file_content[i].replace('\n', '')+file_content[i-1].replace('\n', '') for i in range(len(file_content)) if i % 2]
for line in traitement:
print line
utilisation:
python script.py finput_file
ou:
[code]
python script.py finput_file > output_file
[/code]
Dernière modification par Olivier_Dev (Le 28/11/2013, à 21:03)
Hors ligne