Ersetzen Sie einen Wert an einer zufälligen Position durch einen bestimmten mit Einschränkung

Ersetzen Sie einen Wert an einer zufälligen Position durch einen bestimmten mit Einschränkung

Ich muss 10 % einer Zahl in einer Spalte zufällig durch eine andere bestimmte Zahl ersetzen. Beispielsweise 10 % einer beliebigen Zahl zufällig durch „1“ ersetzen, außer an der ersten Stelle.

in Datei1.txt

1 1234567890
2 0987654321

aus Datei2.txt

1 1234561890
2 0987651321

Antwort1

Speichern Sie das folgende Skript als repwith1.sh:

cat | while read procl
  do echo -n "${procl:0:1}"
     for i in `seq 1 $((${#procl}-1))`
       do if [ $((RANDOM%10)) -eq 1 ]
             then if echo "${procl:$i:1}" | grep -q "[0-9]"
               then echo -n "1"
               else echo -n "${procl:$i:1}"
             fi
             else echo -n "${procl:$i:1}"
          fi
       done
     echo ""
  done

Verwenden Sie es wie folgt:

$ cat (file name) | bash repwith1.sh

Wenn Sie in einer Datei speichern möchten, gehen Sie wie folgt vor:

$ cat (file name) | bash repwith1.sh > (new file name)

verwandte Informationen