Je dois pouvoir faire est de remplacer un espace ( ) par un point ( .) dans une chaîne en bash.
Je pense que ce serait assez simple, mais je suis nouveau donc je ne peux pas comprendre comment modifier un exemple similaire pour cette utilisation.
trles chaînes longues. Sur mon système, iltrsurpasse les performances de bash en commençant par des chaînes de plus de1000caractères. Il semble que la complexité temporelle de bash soit pire que linéaire. Un petit test:x="$(tr -dc 'a-z \n' </dev/urandom | head -c1M)"; time y="$(tr ' ' \\- <<< "$x")"; time z="${x// /-}". Avec une longueur de chaîne de 1M (= 2 ^ 20) atrpris0.04set bash 5.0.11 a pris17s. Avec 2M atrpris0.07s(attendu) mais bash a pris69s(4 fois plus longtemps pour deux fois la longueur de la chaîne).