임의의 위치에 있는 값을 제한이 있는 특정 값으로 대체합니다.

임의의 위치에 있는 값을 제한이 있는 특정 값으로 대체합니다.

열에 있는 숫자의 10%를 무작위로 다른 특정 숫자로 바꿔야 합니다. 예를 들어 첫 번째 위치를 제외하고 숫자의 10%를 "1"로 무작위로 바꿉니다.

file1.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)

관련 정보