Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

concatenation et CAT

10 réponses
Avatar
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

10 réponses

Avatar
Alain
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
Avatar
Stephane Chazelas
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

Avatar
Vincent Lefevre
Dans l'article ,
Stephane Chazelas écrit:

{
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 - Web: <http://www.vinc17.org/>
100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/>
Work: CR INRIA - computer arithmetic / Arenaire project (LIP, ENS-Lyon)

Avatar
mobidyc
"dudul" a écrit dans le message de
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

Avatar
lhabert
"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!

Avatar
Stephane Chazelas
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


Avatar
lhabert
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.

Avatar
Stephane Chazelas
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


Avatar
lhabert
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.
Avatar
mobidyc
"Stephane Chazelas" a écrit dans le message
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