2010-12-03 48 views
4

En fait, je fais ceci:Comment puis-je modifier l'endroit où unix envoie ses résultats pour la commande split?

export_something | split -b 1000 

qui sépare les résultats de l'exportation dans les noms de fichiers Xaa, xab, XAC tous les 1000 octets chacun

mais je veux que ma sortie de Split pour aller dans des fichiers avec un préfixe spécifique. Habituellement, je ferais simplement ceci:

split -b <file> <prefix> 

mais il n'y a pas de drapeau pour le préfixe quand vous êtes raccordé. Ce que je cherche est une façon de faire ceci:

export_something | split -b 1000 <output-from-pipe> <prefix> 

Est-ce possible?

Répondre

12

Oui, - est couramment utilisé pour désigner stdin ou stdout, selon ce qui est le plus logique. Dans votre exemple

export_something | split -b 1000 - <prefix> 
+0

Parfait! Juste ce dont j'avais besoin –

3

utilisation - pour l'entrée

sortie des pièces de taille fixe de l'entrée à PREFIXaa, PREFIXab, ...;

la taille par défaut est de 1000 lignes et le PREFIX par défaut est `x '.

Sans ENTRÉE ou lorsque ENTRÉE est -, lire l'entrée standard.

export_something | split -b 1000 - <prefix> 
1

utilisation - en entrée comme split --help dit

0

Vous pouvez utiliser une expression en ligne (ou quelque chose comme ça, je ne me souviens jamais) pour exporter les données directement dans la fonction comme une chaîne:

split -b 1000 "`export_something`" <prefix> 

Espérons que cela fonctionne.

+0

C'est ce qu'on appelle une sous-famille. – Sorpigal

+0

Non, cela prendrait le contenu comme nom de fichier. Ce à quoi vous pensez est "substitution de processus": 'split -b 1000 <(export_something) prefix' –

+0

Oh, d'accord. Je n'ai jamais utilisé 'split ', alors maintenant je sais qu'il ne peut pas prendre un argument de texte direct ... Merci pour l'info, cependant. Maintenant je sais comment faire ça! – Blender