有时因为测试需要,要在数据库中模拟大量的数据,而这些数据都有一定的规律,比如现在有一个包含200个用户昵称的数据文件,要将这些昵称导入到用户表中,用户表的属性有姓名、昵称、性别、年龄、用户类型等等,姓名必须是字母和数字组成的,而年龄只能取值0、1、2,分别代表女、男、保密,而年龄需要在18~35岁之间,用户类型只能取两个值(普通,高级),如何模拟出这样一些数据呢,使用shuf命令可以轻松搞定。方法如下:
一.准备数据文件
1.性别数据文件:sex.list
0
1
2
2.年龄数据文件:age.list
18
19
20
……
……
35
3.用户类型数据文件:type.list
普通
高级
4.用户名称数据文件:asciitab.list
0
1
2
……
……
9
a
b
……
……
z
A
B
……
……
Z
5.昵称文件内容如下:alais.list
天空
昭昭
多多
……
……
坏孩子
先进分子
二.编写生产数据脚本
新建一个脚步文件:makeUserData.sh,内容如下:
catalais.list |
while read line
do
username=`shuf -n 1 asciitab.list``shuf -n 1 asciitab.list``shuf -n 1 asciitab.list``shuf -n 1 asciitab.list``shuf -n 1 asciitab.list``shuf -n 1 asciitab.list`
sex=`shuf -n 1 sex.list`
age=`shuf -n 1 age.list`
type=`shuf -n 1 type.list`
echo $username##$line##$sex##$age##$type
done
说明:
1.shuf -n 1 asciitab.list 的含义是从asciitab.list 文件中随机取出一行数据,如果是-n 2就是取出两行数据
2.username就是由六位字母或数字组成
3.catalais.list |while read line:读取alais.list的每一行数据,并将该行数据保存在line中,echo $username##$line##$sex##$age##$type,就用到了这个变量
三.运行脚本
sh makeUserData.sh > userData.list
生成的userData.list内容如下:
a2Srtc##昭昭##1##34##普通
bHGtrs##坏孩子##2##19##高级
…………………………
…………………………
98Dyte##天空##1##24##普通
四.数据入库
这部分就随意吧,喜欢使用什么方式都可以,基本思想就是解析文件并入库。
补充说明:
这个帖子发了有一段时间了,最近才发现,原来好多linux版本在安装时不会安装shuf命令,我在网上查了一下,未发现有关安装这个命令的资料,同时通过linux自动查找也没有找到,比较奇怪啊。
我当初使用的cygwin,一个在windows上模拟linux的工具,选择的是完全安装,shuf也就装上了。
这里给出一个没有shuf命令的解决办法,就是写一个随机读取一行文件的小命令,如下:
perl -e 'srand;' \
-e 'rand($.) < 1 && ($it = $_) while <>;' \
-e 'print $it' $1
这里使用了perl命令,一般来说,perl命令是都会默认安装的。
将以上脚本保存在文件shuf.sh中,将以上用到shuf -n 1的地方修改为sh shuf.sh即可。
分享到:
相关推荐
在文档中提到的使用shuf命令模拟数据,是为了在测试时模拟数据库中的数据,特别是在需要特定模式的数据时,比如测试用户信息的导入。在这个例子中,通过准备几个基础数据文件(性别、年龄、用户类型和昵称),然后...
例如,您可以使用 ls 命令显示文件夹的内容,然后使用 shuf 命令随机地选择文件或文件夹。 7. ss 命令 ss 命令可以显示 socket 统计信息,类似于 netstat 命令。这个命令可以显示更多的 TCP 和状态信息,对于网络...
6. **last命令**:last命令显示系统上用户的登录历史,包括登录时间、退出时间、使用的终端等,通过对`/var/log/wtmp`文件的查询来获取信息。 7. **curl ifconfig命令**:curl通常用于从URL下载数据,ifconfig则是...
6. **last命令**:显示系统上最后一次登录用户的记录,包括登录时间、退出时间、使用的终端等信息,通过查看"/var/log/wtmp"文件获取这些数据,有助于系统安全管理和审计。 以上这些命令虽然平时可能不太常用,但...
pytorch对一下常用的公开数据集有很方便的API接口,但是当我们需要使用自己的数据集训练神经网络时,就需要自定义数据集,在pytorch中,提供了一些类,方便我们定义自己的数据集合 torch.utils.data.Dataset:...
使用方法,解压到本地目录,配置path,即可在dos下使用linux命令。 windows下能直接执行的linux命令,基本包括日常所有,如:[.exe grolbp.exe regtool.exe a2p.exe grolj4.exe rm.exe a2p5.10.0.exe grops.exe ...
使用北京大学人民日报语料库,已分词的txt文档被存放在 data 路径下, 其中 1998-01-2003_shuf.txt 为经过 - 不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才...
linux下大部分常用命令源码,偶正要开始学习-_- base64.c basename.c c99-to-c89.diff cat.c chcon.c chgrp.c chmod.c chown.c chown-core.c chown-core.h chroot.c cksum.c comm.c copy.c cp.c cp-hash.c csplit.c ...
`stat`命令可以提供文件的元数据,如修改时间、访问时间、权限等。只需输入`stat filename_ext`,例如`stat abc.pdf`,就能查看相应文件的详细信息。 最后一个技巧适合初学者,通过`man`命令结合`ls`、`shuf`和`...
**shuf** 命令可以随机地从输入中选取行或文件。这对于需要随机选择数据的情况非常有用。 - **语法**: `shuf [options] [file]` - **示例**: 随机选择文件夹中的一个文件: ```bash # ls Desktop Documents ...
使用北京大学人民日报语料库,已分词的txt文档被存放在 data 路径下, 其中 1998-01-2003_shuf.txt - 不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传...
通常做机器学习问题时,需要准备训练数据,通常会把样本数据和标签存放于2个list中,比如train_x = [x1,x2,…,xN][x1,x2,…,xN],train_y = [y1,y2,…,yN][y1,y2,…,yN]. 有时候是需要将数据shuffle后再做处理的...
生成随机数可以使用 `shuf` 命令或者通过计算实现。 ##### 10. 变量处理 - **10.1 字符串处理** 包括字符串的分割、替换等功能。 ```bash str="hello world" echo "${str//world/universe}" ``` - **10.2 ...
# 使用at命令安排延迟执行 echo "$COMMAND" | at now + $RANDOM_MINUTES min ``` 这个包装脚本首先生成一个1到60秒的随机数,然后生成一个2到350分钟的随机数。这两个随机数将用于确保签到命令不会在整点执行,从而...
21. **保持SSH会话后程序运行**:`nohup` 和 `disown` 命令可确保程序在退出SSH会话后继续运行,或者使用`screen`或`tmux`创建持久的终端会话。 22. **定时运行命令**:`timeout` 命令可以限制命令执行时间,如`...
在这个脚本中,`dd`可能被用来创建空白文件,然后使用其他命令(如`shuf`或`openssl rand`)生成随机数据并写入这些文件,以确保文件内容是不可预测的。 此外,生成的文件默认会被保存在执行脚本的当前工作目录中。...
这会向你介绍一些有用的命令及其高级使用技巧。 在.bashrc中(/home/.bashrc)增加如下一行: echo Did you know that:; whatis$(ls /bin | shuf -n 1) 你只需要增加这行就够了!如果你想让它更娱乐化一些,你可以...
shuf -n5 main.txt sort -R main.txt | head -5 awk -vN=5 -vC=”`wc -l file`” ‘BEGIN{srand();while(n<N){i=int(rand()*C+1);...shuf 命令的选项: -e, –echo :将每个参数视为输入行 -i, –input-ran
这是一款使Unix命令集合能直接在window上面使用的应用程序。 所含的命令有: [, ar, ash, awk, base64, basename, bash, bbconfig, bunzip2, bzcat, bzip2, cal, cat, catv, chmod, cksum, clear, cmp, comm, cp, ...