Comment puis-je supprimer un élément dans un tableau et ensuite déplacer le tableau en Script Shell?
D'abord, permettez-moi de préciser mon problème clairement:
Ex: disons que c'est mon tableau, (les éléments n'ont pas d'importance que dans mon code, ils varient):
array=(jim 0 26 chris billy 78 hello foo bar)
Maintenant dire que je veux supprimer les éléments suivants:
chris 78 hello
J'ai donc fait: unset array[$i]
tout en parcourant le tableau.
Cela supprime les éléments correctement, cependant, je me retrouve avec un tableau qui ressemble à ceci:
array=(jim 0 26 '' billy '' '' foo bar)
J'ai besoin qu'elle ressemble à ceci:
array=(jim 0 26 billy foo bar)
où jim est à l'index 0, 0@1, 26@2, etc..
Comment puis-je supprimer les éléments dans le tableau et déplacer les autres éléments de façon à ce qu'il n'y a pas null/espaces vides dans le tableau?
Merci!
OriginalL'auteur tc90 | 2013-07-08
Vous devez vous connecter pour publier un commentaire.
Essayez ceci:
Shell tableaux ne sont pas vraiment prévu que les structures de données que vous pouvez ajouter et supprimer des éléments à partir (ils sont principalement destinés à fournir un deuxième niveau de citer pour les situations comme
de fournir
somecommand
à deux, pas quatre, arguments). Mais cela devrait fonctionner dans la plupart des situations.OriginalL'auteur chepner
Voir http://www.thegeekstuff.com/2010/06/bash-array-tutorial
...
Cet contrats de la matrice autour de pos, qui l'affiche originale voulait.
OriginalL'auteur Alexey Pismenny
Essayez ceci:
OriginalL'auteur mark_infinite
ce post a été révisé et a déménagé à son propre post comme un plus en profondeur tutoriel comment faire pour supprimer un élément de tableau correctement dans une boucle for
OriginalL'auteur Clark Kent