concatenation et CAT

Le
dudul
Bonjour,

La commande suivante :

cat fichier_A >> fichier_B

ajoute le contenu du fichier_A à la fin du fichier_B

Est il possible d'ajouter le contenu du fichier_A au début du fichier_B ?

Merci
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Alain
Le #733855
On Sun, 1 Apr 2007 06:22:23 +0200
dudul [dudul] wrote:

dudul> Bonjour,
dudul>
dudul> La commande suivante :
dudul>
dudul> cat fichier_A >> fichier_B
dudul>
dudul> ajoute le contenu du fichier_A à la fin du fichier_B
dudul>
dudul> Est il possible d'ajouter le contenu du fichier_A au début du fichier_B ?

ca revient a ajouter le contenu du fichier B a la fin du fichier A

--
Alain
Stephane Chazelas
Le #733854
2007-04-1, 06:22(+02), dudul:
Bonjour,

La commande suivante :

cat fichier_A >> fichier_B

ajoute le contenu du fichier_A à la fin du fichier_B

Est il possible d'ajouter le contenu du fichier_A au début du fichier_B ?
[...]


{
rm fichier_B &&
cat fichier_A - > fichier_B
} < fichier_B

(ca cree un nouveau fichier_A).

--
Stéphane

Vincent Lefevre
Le #733853
Dans l'article Stephane Chazelas
{
rm fichier_B &&
cat fichier_A - > fichier_B
} < fichier_B


Ce n'est pas quelque chose que je recommanderais: s'il n'y a pas
assez de place sur le disque (ou s'il y a un plantage ou un shutdown
qui intervient), on perd le contenu de fichier_B, partiellement ou
totalement!

--
Vincent Lefèvre 100% accessible validated (X)HTML - Blog: Work: CR INRIA - computer arithmetic / Arenaire project (LIP, ENS-Lyon)

mobidyc
Le #733852
"dudul" news:460f31dc$0$26882$
Bonjour,

La commande suivante :

cat fichier_A >> fichier_B

ajoute le contenu du fichier_A à la fin du fichier_B

Est il possible d'ajouter le contenu du fichier_A au début du
fichier_B ?


Merci


Bonjour,

pourquoi ne pas retourner le fichier?:
tac fichier_B >fichier_tmp &&
tac fichier_A>>fichier_tmp &&
tac fichier_tmp >fichier_B ||
echo il y a eu une erreur

PS: tac fait partie des coreutils GNU dispo pour tout les UNIX je pense
(en tout cas je l'ai sur HPUX et SOLARIS).
--
Cordialement,
Mobidyc

lhabert
Le #733851
"mobidyc" :

tac fichier_B >fichier_tmp &&
tac fichier_A>>fichier_tmp &&
tac fichier_tmp >fichier_B ||
echo il y a eu une erreur


Mort de rire!

Stephane Chazelas
Le #733598
2007-04-2, 14:33(+02), mobidyc:
[...]
Est il possible d'ajouter le contenu du fichier_A au début du
fichier_B ?

[...]

pourquoi ne pas retourner le fichier?:
tac fichier_B >fichier_tmp &&
tac fichier_A>>fichier_tmp &&
tac fichier_tmp >fichier_B ||
echo il y a eu une erreur

PS: tac fait partie des coreutils GNU dispo pour tout les UNIX je pense
(en tout cas je l'ai sur HPUX et SOLARIS).
[...]


Mais pas dispos de base sous les Unix non-GNU. Et certains Unix
ont une commande equivalente (tail -r).

En plus, si on utilise un temporaire, pas besoin de tac:

cat fichier_A fichier_B > fichier_tmp &&
mv fichier_tmp fichier_B

--
Stéphane


lhabert
Le #733597
Stephane Chazelas :

cat fichier_A fichier_B > fichier_tmp &&
mv fichier_tmp fichier_B


Ou remplacer le mv par un cat >, histoire que fichier_B pointe toujours vers
le même fichier.

Stephane Chazelas
Le #733596
2007-04-2, 13:06(+00), Luc Habert:
Stephane Chazelas :

cat fichier_A fichier_B > fichier_tmp &&
mv fichier_tmp fichier_B


Ou remplacer le mv par un cat >, histoire que fichier_B pointe toujours vers
le même fichier.


Ou cp, mais alors il faut faire suivre d'un rm.

--
Stéphane


lhabert
Le #733595
De toutes manières, c'est merdique, puisqu'on perd l'atomicité. Il faudrait
pouvoir créer un contenu de fichier non lié, et avoir un appel système pour
le substituer atomiquement au contenu d'un fichier existant.
mobidyc
Le #733594
"Stephane Chazelas" de news:
2007-04-2, 14:33(+02), mobidyc:
[...]
Est il possible d'ajouter le contenu du fichier_A au début du
fichier_B ?

[...]

pourquoi ne pas retourner le fichier?:
tac fichier_B >fichier_tmp &&
tac fichier_A>>fichier_tmp &&
tac fichier_tmp >fichier_B ||
echo il y a eu une erreur

PS: tac fait partie des coreutils GNU dispo pour tout les UNIX je
pense


(en tout cas je l'ai sur HPUX et SOLARIS).
[...]


Mais pas dispos de base sous les Unix non-GNU. Et certains Unix
ont une commande equivalente (tail -r).

En plus, si on utilise un temporaire, pas besoin de tac:

cat fichier_A fichier_B > fichier_tmp &&
mv fichier_tmp fichier_B

--
Stéphane


j'ai dit la première chose qui me passait par la tête (pas taper svp)

pour info, je suis sous un HP-UX 11.00 et voici ec que me renvoie
tail -r:
# /usr/bin/tail -r /etc/passwd
Usage: tail [-f] [-b number] [file]
tail [-f] [-c number] [file]
tail [-f] [-n number] [file]

pareil avec la version XPG4
# UNIX95=1 /usr/bin/tail -r /etc/passwd
Usage: tail [-f] [-b number] [file]
tail [-f] [-c number] [file]
tail [-f] [-n number] [file]

donc, pas dispo non plus sur tous les Unix

le plus portable serait plutôt:
cat fichier_b >> fichier_a && cat fichier_a >fichier_b

préfèrez écrire dans un fichier que de le remplacer (problèmes
d'appropriation toussa...)

Cordialement,
Mobidyc



Publicité
Poster une réponse
Anonyme