Bash Zufallszahlen Zufällig n Zeichen breit n Zeichen hoch Textdaten Generierung

Zufällige Textdaten in Bash mit variabler Größe generieren

Dieser Artikel erklärt, wie man zufällige Textdaten von n Zeichen Breite mal n Zeichen Höhe von der Bash-Befehlszeile auf Linux-Computern und -Servern generiert. Ein Beispiel für die Generierung von Textdaten, die aus zufälligen Zeichen bestehen, 5 Zeichen x 5 Zeichen, insgesamt 25 Zeichen...

Shou Arisaka
3 Min. Lesezeit
9. Okt. 2025

Dieser Artikel erklärt, wie man zufällige Textdaten von n Zeichen Breite mal n Zeichen Höhe von der Bash-Befehlszeile auf Linux-Computern und -Servern generiert.

Image

Ein Beispiel für die Generierung von Textdaten, die aus zufälligen Zeichen bestehen, 5 Zeichen x 5 Zeichen, insgesamt 25 Zeichen:

yuis ASUS /mnt/c/pg$ gentext 5 5 random
AsVDT
iCPZi
Ihlv8
NVwc0
TofvP

Wenn keine Zufallszahlen benötigt werden, geben Sie das dritte Argument als leer oder ein beliebiges Zeichen an, um Textdaten mit demselben Zeichen auszugeben.

yuis ASUS /mnt/c/pg$ gentext 5 5
XXXXX
XXXXX
XXXXX
XXXXX
XXXXX

Wenn Sie die generierten Daten in eine Datei ausgeben möchten, leiten Sie sie wie üblich um.

yuis ASUS /mnt/c/pg$ gentext 5 5 random > tmp.txt

Code

Hier ist der Code:


gentext02(){
  : <<< '
  generate a large size of text contents.

  e.g. gentext02 [width] [height] [char]
  e.g. gentext02 100 100 Z
  e.g. gentext02 100 100 random > tmp.txt

  i.e. check how long time fzf takes against to a large of text contents.
    tmpdird
    push gentext02 20 50000 random > tmp.txt
    cat tmp.txt | fzf
  '

  for i in $(seq "${2:-10}") ; do
    # printf "${3:-X}%.0s" {1..${1:-10}} ; printf '\n'

      [[ "${3}" =~ rand|random ]] && {
        # printf "$( randsel {a..z} )%.0s" $( eval "echo {1..${1:-10}}" ) ; printf '\n'
        random ${1:-10}
      } || {
        printf "${3:-X}%.0s" $( eval "echo {1..${1:-10}}" ) ; printf '\n'
      }

  done

}

alias gentext="gentext02"

Code-Erklärung

Die gentext-Funktion generiert Textdaten von n Zeichen Breite mal n Zeichen Höhe.

  1. Wenn das zweite Argument nicht angegeben ist, wird 10 angegeben.
for i in $(seq "${2:-10}") ; do
  1. Wenn das dritte Argument rand oder random ist, wird die random-Funktion aufgerufen.
[[ "${3}" =~ rand|random ]] && {
  random ${1:-10}
} || {
  printf

"${3:-X}%.0s" $( eval "echo {1..${1:-10}}" ) ; printf '\n'
}
  1. Ruft die random-Funktion auf.
random ${1:-10}
  1. Wenn das dritte Argument nicht angegeben ist, wird X angegeben.
printf "${3:-X}%.0s" $( eval "echo {1..${1:-10}}" ) ; printf '\n'
  1. Generiert Textdaten von n Zeichen Breite mal n Zeichen Höhe.
printf "${3:-X}%.0s" $( eval "echo {1..${1:-10}}" ) ; printf '\n'
  1. Aliasiert die gentext-Funktion als gentext02.
alias gentext="gentext02"

Verwendung

Fügen Sie dies zu ~/.bashrc oder ähnlich hinzu, dann starten Sie die Shell neu oder laden Sie es mit source ~/.bashrc oder ähnlich.

Mit dem gentext-Befehl können Sie Textdaten von n Zeichen Breite mal n Zeichen Höhe generieren.

random(){
  ARG1=${1:-32}
  # cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w $1 | head -n 1
  cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w $ARG1 | head -n 1
}

Diesen Artikel teilen

Shou Arisaka 9. Okt. 2025

🔗 Links kopieren