我需要将一列中 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)