Ich muss in der Lage sein, ein Leerzeichen ( ) durch einen Punkt ( .) in einer Zeichenfolge in Bash zu ersetzen .
Ich denke, das wäre ziemlich einfach, aber ich bin neu, daher kann ich nicht herausfinden, wie ich ein ähnliches Beispiel für diese Verwendung ändern kann.
trlange Saiten bevorzugen . Auf meinem Systemtrübertrifft Bash ab Zeichenfolgen mit mehr als1000Zeichen. Es scheint, dass die zeitliche Komplexität von bash schlimmer als linear ist. Ein kleiner Test :x="$(tr -dc 'a-z \n' </dev/urandom | head -c1M)"; time y="$(tr ' ' \\- <<< "$x")"; time z="${x// /-}". Mit einer Stringlänge von 1M (= 2 ^ 20)trnahm0.04sund Bash 5.0.11 nahm17s. Mit 2Mtrdauerte0.07s(erwartet), aber Bash dauerte69s(4-mal so lang für die doppelte Saitenlänge).