Comment puis-je faire la liste des lettres de A à Z et d'itérer à travers eux dans le shell?
Dire que je veux effectuer une itération à partir de la lettre A à la lettre Z dans le shell csh. Comment puis-je succinctement le faire?
En bash, je voudrais faire quelque chose comme
for i in 'A B C ...Z'; do echo $i; done
Le point est que je ne veux pas écrire de A à Z, je veux quelque chose comme
[A-Z]
Pouvez-vous suggérer une ligne de suggestion dans AWK ou Perl?
C'est "c-shell" pas "de maïs shell". "Korn shell" est un autre animal entièrement.
Dans bash: $ for i in {A..Z}; do echo $i; done
Dans korn: $ for i in {A..Z}^Jdo^Jecho $i^Jdone
En bash, il faudrait omettre les guillemets simples autour des lettres.
Dans bash: $ for i in {A..Z}; do echo $i; done
Dans korn: $ for i in {A..Z}^Jdo^Jecho $i^Jdone
En bash, il faudrait omettre les guillemets simples autour des lettres.
OriginalL'auteur vehomzzz | 2009-09-22
Vous devez vous connecter pour publier un commentaire.
Perl
ou à utiliser à l'intérieur d'une coquille:
Pourquoi avez-vous les parenthèses autour de la gamme de l'opérateur? Est-il étrange interaction de shell que je suis absent?
Je préfère
perl -E'say for A..Z'
vous avez raison.
print A..Z
fonctionne aussiCela ne fonctionne pas avec 'use strict'. Vous avez besoin des guillemets autour de l'Un et le Z. Mais alors strict n'est pas activé par défaut, donc je suppose que c'est bien.
OriginalL'auteur mob
Pourquoi ne pouvez-vous pas itérer sur eux? Le Perl gamme de l'opérateur retourne une liste. C'est une liste comme toute autre liste. Faire ce que vous voulez avec elle. En outre, vous devez préciser votre question pour tous les trucs que vous n'êtes pas à nous dire.
Parce que Andrei veut effectuer une itération dans le shell.
OriginalL'auteur Sinan Ünür
Espère que vous avez Ruby installé. 😉
Voir ce, la plaine de la ligne de commande du shell:
à l'aide de Ruby à la parcourir de A à Z, et demandez à imprimer les lettres:
itération de A à Z et de remplacer la valeur obtenue lors de l'itération en cours dans une chaîne de caractères, puis imprimez-les à la chaîne:
l'utilisation de la sortie de l'itération de A à C comme un argument de
mkdir
, afin de créer 3 répertoires:faire une liste pour voir les résultats:
Espère que cela aide un peu! 😉
ce qui concerne,
Iuliu
OriginalL'auteur Iuliu Pascaru
personne n'a à s'émerveiller de la solution, donc voici un
OriginalL'auteur ghostdog74
jot -c 26 65
); echo $i; fin iota: Command not found. foreach?Vous pouvez appuyez simplement sur entrée après le foreach var (...) et la coque va vous permettre de continuer à entrer des lignes jusqu'à ce que vous tapez la fin
Je suppose que maintenant, je comprends la question 😀
noter d'abord paru dans le point 4.2 BSD. Il peut ne pas être en situation de non-BSD provenant de Systèmes d'exploitation.
OriginalL'auteur Aoife
Comment sur:
... ou suis-je incompréhension de ce que vous essayez d'accomplir?
(Il est vrai que la suggestion à l'aide de
$,=" "
est encore mieux que de l'explicite Perlfor
boucle). Cependant, je ne comprends pas la valeur d'emballage de la gamme dans+()
des signes de ponctuation. Il fonctionne pour moi si je viens de l'utiliser:print A..Z;
... siperl -we 'print a..z;' gives me a warning about unquoted strings, but the uppercase version doesn't. The statement
d'impression +(a..z)gives exactly the same warning ... and quoting any of these eliminates the warning. So what's the intent of the
+(...)`? Est-il juste d'essayer de forcer ce dans un contexte de liste?)OriginalL'auteur Jim Dennis
UTILISATION DE AWK:
Vous pouvez consulter le Jeu de Caractères ASCII en utilisant le lien suivant:
http://ee.hawaii.edu/~tep/EE160/Book/chap4/subsection2.1.1.1.html
Maintenant pour itérer à travers un ensemble de valeur, vous pouvez utiliser la commande AWK comme suit:
awk 'BEGIN{ for(i=97;i<123;i++){printf "%c ",i}; printf "\n";}'
Résultat:
a b c d e f g h i j k l m n o p q r s t u v w x y z
Ici 97 correspond à la lettre "a" et 122 est "z". Vous pouvez varier à la suite de toute utilisation de la valeur à partir de la liste donnée ci-dessus.
et ainsi de suite.
OriginalL'auteur Pramod Tiwari