coller des fichiers sans délimiteur


8

Comment joindre deux fichiers verticalement sans séparateur? J'ai essayé d'utiliser paste -d"" a b, mais cela me donne juste a.

Exemple de fichier:

000    0   0   0
0001000200030004
  10  20  30  40
    2000    4000
            .123
            12.1
1234234534564567

1
Êtes-vous sûr de ce que vous obtenez? paste - d"" a bcollera le contenu de stdin, fichier nommé d"", a, b.
— cuonglm

@cuonglm typo ... fixed.
— Tomas Greif

Vous étiez hors d'un caractère: paste -d "" a b.
— G-Man dit `` Réintègre Monica '' le

Réponses:


14

pasteutiliser \0pour le délimiteur nul tel que défini par POSIX :

paste -d'\0' file1 file2

L'utilisation -d"" a best la même que -d a b: le pasteprogramme voit trois arguments -d, aet b, ce qui rend ale délimiteur et ble nom du fichier unique à coller.

Si vous êtes sur un système GNU (Linux non embarqué, Cygwin,…), vous pouvez utiliser:

paste -d "" file1 file2

Le formulaire -d ""n'est pas spécifié par POSIX et peut produire des erreurs sur d'autres plateformes. Au moins BSD et heirloom pastene rapporteront aucune erreur de délimiteurs .


3
Soyez prudent lorsque vous essayez de tirer quelque chose du comportement des outils dits "héritage". pastede cette suite a été écrite par Gunnar Ritter et n'est pas liée aux sources UNIX.Le Bourne Shell de cette suite est dérivé du OpenSolaris Bourne Shell, mais a ses propres bogues en raison d'un portage rapide et hacky aux déficits sous Linux ( par exemple une implémentation wait () incompatible), vérifiez (exec ps)pour vérifier un blocage qui n'est pas présent dans l'original et qui n'est pas présent dans mon Bourne Shell portable.
— schily

BTW: coller sur Solaris avant ~ avril 2010 donne une erreur "sans délimiteur" avec paste -d '' file1 file2mais depuis, coller est l'implémentation de pâte prise par David Korn et cela permet -d "".
— schily

@schily: Que voulez-vous dire par "dériver"? Je mentionne l'héritage pasteparce que je l'avais et que je peux le tester, je ne l'utilise pas pour "standard" ou autre chose.
— cuonglm

@schily: Et j'ai également testé avec Solaris 11, cela nepaste donne pas non plus d' erreur de délimiteurspaste -d "" .
— cuonglm

Beaucoup de gens croient que les outils avec la marque "héritage" proviennent de sources UNIX originales, mais pas la pâte héritage.
— schily

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.