以特定的限制取代隨機位置的值

以特定的限制取代隨機位置的值

我需要將一列中 10% 的數字隨機替換為其他特定數字。例如,除了第一個位置之外,隨機用“1”替換任何數字的 10%

在文件1.txt中

1 1234567890
2 0987654321

輸出文件2.txt

1 1234561890
2 0987651321

答案1

將以下腳本儲存為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

像這樣使用它:

$ cat (file name) | bash repwith1.sh

如果您想儲存到文件,請執行以下操作:

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

相關內容