医疗营销网站建设注册公司流程和费用最新
news/
2025/10/3 2:26:13/
文章来源:
医疗营销网站建设,注册公司流程和费用最新,响应式网站样式图怎么做,局域网里做网站无论是将文件读入脚本#xff0c;还是将数据从脚本输出到文件#xff0c;都会用到文件重定向#xff0c;这是一种很 常见的操作。本节中的示例脚本两种功能皆有。它会读取 CSV 格式的数据文件#xff0c;输出 SQL INSERT 语句#xff0c;并将数据插入数据库。 shell 脚本使…无论是将文件读入脚本还是将数据从脚本输出到文件都会用到文件重定向这是一种很 常见的操作。本节中的示例脚本两种功能皆有。它会读取 CSV 格式的数据文件输出 SQL INSERT 语句并将数据插入数据库。 shell 脚本使用命令行参数指定待读取的 CSV 文件。CSV 格式用于从电子表格中导出数据 你可以把这些数据库数据放入电子表格将电子表格保存为 CSV 格式读取文件然后创建 INSERT 语句将数据插入 MySQL 数据库。 实现这些操作的脚本如下
$cat test23
#!/bin/bash
# read file and create INSERT statements for MySQL
outfilemembers.sql
IFS,
while read lname fname address city state zip
do cat $outfile EOF INSERT INTO members (lname,fname,address,city,state,zip) VALUES
($lname, $fname, $address, $city, $state, $zip);
EOF
done ${1}
$ 这个脚本很简短。这要感谢文件重定向。脚本中出现了 3 处重定向操作。while 循环使用 read 语句参见第 14 章从数据文件中读取文本。注意在 done 语句中出现的重定向符号
done ${1} 当运行脚本 test23 时$1 代表第一个命令行参数指明了待读取数据的文件。read 语句使 用 IFS 字符解析读入的文本这里将 IFS 指定为逗号。 脚本中另外两处重定向操作出现在同一条语句中
cat $outfile EOF 这条语句包含一个输出追加重定向双大于号和一个输入追加重定向双小于号。输出 重定向将 cat 命令的输出追加到由$outfile 变量指定的文件中。cat 命令的输入不再取自标准 输入而是被重定向到脚本内部的数据。EOF 符号标记了文件中的数据起止
INSERT INTO members (lname,fname,address,city,state,zip) VALUES
($lname, $fname, $address, $city, $state, $zip); 上述文本生成了一个标准的 SQL INSERT 语句。注意其中的数据由变量来替换变量中 的内容则由 read 语句存入。 while 循环基本上一次读取一行数据然后将这些值放入 INSERT 语句模板中最后将结果 输出到文件中。 在这个例子中使用以下脚本作为输入文件
$ cat members.csv
Blum,Richard,123 Main St.,Chicago,IL,60601
Blum,Barbara,123 Main St.,Chicago,IL,60601
Bresnahan,Christine,456 Oak Ave.,Columbus,OH,43201
Bresnahan,Timothy,456 Oak Ave.,Columbus,OH,43201
$ 运行脚本时显示器上不会有任何输出
$ ./test23 members.csv
$ 但是在输出文件 members.sql 中可以看到以下内容
$ cat members.sql
INSERT INTO members (lname,fname,address,city,state,zip) VALUES (Blum,Richard, 123 Main St., Chicago, IL, 60601);
INSERT INTO members (lname,fname,address,city,state,zip) VALUES (Blum,Barbara, 123 Main St., Chicago, IL, 60601);
INSERT INTO members (lname,fname,address,city,state,zip) VALUES (Bresnahan,Christine, 456 Oak Ave., Columbus, OH, 43201);
INSERT INTO members (lname,fname,address,city,state,zip) VALUES (Bresnahan,Timothy, 456 Oak Ave., Columbus, OH, 43201);
$ 结果和我们预想的一样。现在可以直接将 members.sql 文件导入 MySQL 数据表中了。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/925491.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!