Une équivalence à la commande "echo" - Shell/Batch - Programmation
Marsh Posté le 11-09-2006 à 19:07:29
sed "s/\n/ /g" list1 > fichierresultat
Marsh Posté le 11-09-2006 à 19:18:39
| betsamee a écrit : cat list1 > awk'{print $1"          "}' | 
Je vais avoir un fichier de sortie avec un nombre de lignes égal à mon fichier list1, non ? 
Marsh Posté le 11-09-2006 à 19:21:24
| betsamee a écrit : cat list1 > awk'{print $1"          "}' | 
 
  Rien à voir avec ce qui est demandé, la commande affiche le premier champ du fichier list1 suivi de blancs et sans aboutement des lignes.
 Rien à voir avec ce qui est demandé, la commande affiche le premier champ du fichier list1 suivi de blancs et sans aboutement des lignes. 
De plus, ce n'est pas une redirection (> ) qu'il faut faire mais un pipe (|). De toutes façon ce pipe est inutile car on peut spécifier le nom du fichier en argument de la commande awk. 
 
Edit  Désolé, j'ai lu trop rapidement le post de epo03; $1 convient bien car le contenu de la ligne est alphanumérique, donc pas de séparateur de champ à redouter (théoriquement). Ceci-étant, il est plus prudent d'utiliser $0. Fin-Edit
 Désolé, j'ai lu trop rapidement le post de epo03; $1 convient bien car le contenu de la ligne est alphanumérique, donc pas de séparateur de champ à redouter (théoriquement). Ceci-étant, il est plus prudent d'utiliser $0. Fin-Edit 
 
A tester : 
| # On redefini le séparateur de ligne en sortie comme étant   | 
Une autre solution plus classique toujours avec awk : 
| awk '{ printf("%s ",$0)}' list1 | 
Marsh Posté le 11-09-2006 à 19:24:04
La solution de Jean Pierre me semble plus adapté à mon pb. 
Merci je teste tout ça demain 
Marsh Posté le 11-09-2006 à 19:26:06
ok au temps pour moi  
 
la solution sed que j ai proposee est erronee?
Marsh Posté le 12-09-2006 à 08:56:28
| betsamee a écrit : cat list1 > awk'{print $1"          "}' | 
 
 
| aigles a écrit : 
 | 
 
De plus, il faut un espace entre la commande "awk" et ses instructions '{...}'
Marsh Posté le 12-09-2006 à 09:08:07
| Sve@r a écrit : De plus, il faut un espace entre la commande "awk" et ses instructions '{...}' | 
 
le > a la place du | est une erreur d'innatention 
Marsh Posté le 12-09-2006 à 18:21:23
Les solutions de Jean Pierre fonctionnent parfaitement et à une vitesse supersonique ; demain je teste le sed 
Merci à tous 
Marsh Posté le 11-09-2006 à 19:00:09
Un problème tout simple : en entrée, j'ai un fichier list1 avec une suite de caractères alphanumériques de 20 octets par ligne ; je souhaite abouter ces lignes les unes après les autres dans un fichier résultat list2 en les séparant par 10 'espaces' sans retour à la ligne.

Avec un fichier d'entrée contenant moins de 50000 lignes ça passe sans problème avec la commande echo :
for i in `cat list1`
do
echo "$i \c" >> list2
done
Au dela de 50000 lignes (ce qui est mon cas) la commande echo ne fonctionne plus (et toute façon ce serait bien lent). Une idée ?
Merci