Comment puis-je concaténer un fichier et une chaîne dans un nouveau fichier sous UNIX en tant que commande à une ligne

J’ai besoin d’une commande très simple (je l’espère) de 1 ligne qui lit dans un fichier ajoute une chaîne et sort dans un nouveau fichier, sans changer les données d’origine.

file1 ssortingng ------ ------ apple oranges bananas 

COMMANDE MAGIQUE

 filel file2 ------ ------ apple apple bananas bananas oranges 

essentiellement, cat file1 + ‘oranges’> file2

J’utilise des autosys pour exécuter la commande, et je suis presque sûr que cela ne permet pas l’utilisation de && ou ; dans le cadre d’une commande unique.

    Tu peux le faire:

     (cat file1 ; echo 'oranges') > file2 

    Ce qui va engendrer un sous-shell, qui va catcher fichier1 à la sortie, puis faire écho aux oranges à la sortie standard. Et nous capturons toutes ces sorties et les redirigeons vers un nouveau fichier, fichier2.

    Ou ces 2 commandes:

     cp file1 file2 echo 'oranges' >> file2 

    Le premier qui copie le fichier1 dans le nouveau fichier2, puis ajoute le mot oranges au fichier2

    Voici un autre paquebot qui n’utilise pas; ni &&

     echo oranges | cat file1 - > file2 
     awk '1; END{ print "oranges"}' file1 > file2 

    Vous pouvez probablement utiliser la solution standard (donnée par nos) si vous la transmettez sous forme de chaîne à sh:

     sh -c 'cat file1; echo oranges' > file2 

    Alors ça devrait le faire:

     $cat file1 >> file2; echo "orange" >> file2;