2010-12-15 106 views
2

Quelle est la commande pour imprimer l'année, le mois et la date avec un onglet horizontal entre les champs unix? est la réponse suivante correcte?date avec onglets espace entre les deux dans unix

% date + "% y% m% d"

je sais tat $ date + "% Y-% m-% d" donnera 88-05-21

+0

Curieux, si vous avez déjà une réponse possible, pourquoi demandez-vous si cela fonctionne au lieu de simplement l'essayer? –

Répondre

3

Si vous utilisez le shell bash:

$ date +"%y"$'\t'"%m"$'\t'"%d" 
10 12 15 

Notez la notation shell $'\t' qui produit un caractère de tabulation horizontale littérale.

EDIT:

De nombreuses commandes, comme printf(1) support une sorte de notation pour spécifier des caractères spéciaux comme un onglet horizontal:

$ printf 'x\ty\n' 
x y 

Si la commande ne prend pas en charge quelque chose comme ça, la façon pour y faire face est d'intégrer un onglet horizontal littéral dans la chaîne de format. Malheureusement, la coque a tendance à traiter la touche de tabulation, par ex. pour effectuer l'auto-complétion.

En bash (et peut-être d'autres sh-like shells) il existe une notation pratique comme $'\t' pour contourner ce problème.

Une autre façon est d'invoquer le "mode quote" du shell. Dans de nombreux shells (y compris bash et tcsh), cela peut être fait en appuyant sur Ctrl-V avant d'appuyer sur le caractère spécial. Cela permettra le mode de devis pour le prochain caractère que de la coquille:

$ echo 'x q' 
x q 

Le résultat ci-dessus peut être obtenu en appuyant sur Ctrl-V après x et avant d'appuyer sur la touche de tabulation.

+0

% date + "% y"% '\ t' "% m"% '0' est-ce écrire pour unix –

+0

@ user238284: S'il vous plaît dites-nous quel système d'exploitation et quel shell vous travaillez - sinon nous ne pouvons pas vraiment répondre. – thkala

2

Pour imprimer la date avec des espaces entre tout ce que vous devez faire est: date "+%y %m %d". Je vous recommande fortement de consulter la page man (man date) pour date.

+0

Veuillez noter que l'OP veut avoir des onglets horizontaux comme des séparateurs, pas des espaces. – thkala

+0

Oops, mon mauvais! Pour quelque raison que ce soit entre la lecture de la question et l'écriture de la réponse, cela m'a échappé. –