作者:星期五2502915743 | 来源:互联网 | 2023-06-24 11:20
[TOC]复制本地文件到数据工具箱(DSToolBox)DSToolBox(以下简写为DSTB)是隔离的环境,但是在运行时,本地目录(为包含Vagrantfile文件的目录)会映射
目录
- 复制本地文件到数据工具箱(DSToolBox)
- in2csv 使用
- 使用 curl 下载互联网数据
- 调用 Web API
DSToolBox(以下简写为DSTB) 是隔离的环境,但是在运行 vagrant up
时,本地目录(为包含 Vagrantfile 文件的目录)会映射到 DSTB 的一个目录,这个目录是和 usr
, root
等系统文件夹在同一个等级的。所以我们可以通过这个文件夹来复制本地文件到DSTB。
- 在 Linux 中,可以使用
scp
(secure cp) 来将文件 copy 到 EC2 实例上。当然,这个需要使用 AWS 服务器。
文件的解压缩
- .zip ----- unzip File.zip
- .tar.gz ---- tar -zxvf File.tar.gz
- z: gzip 压缩格式
- x: extract 解压
- v: verbose 详细信息
- f: file 文件
- .tar.bz2 ---- tar -jxvf File.tar.bz2
- .tar.xz ---- tar -Jxvf File.tar.xz : 注意 J 大写
- .tar.z ---- tar -Zxvf File.tar.z : 注意 Z 大写
- 事实上,tar 自从 1.5 之后便可以自动识别压缩格式,也就是说上面参数的第一个字母可以不用写。
tar -xvf File.tar.gz(/.tar.bz2/.tar.xz)
in2csv 使用
- csv 格式定义
- 每条记录独占一行,使用换行符(CRLF)分隔
- 最后一行没有换行符
- 首行为标题行
# 标准CSV文件格式
Field1, Field2, Field3 CRLF
aa, bb, cc CRLF
dd, ee, ff CRLF
...
xx, yy, zz
File.xlsx
-> File.csv
- 使用
in2csv File.xlsx > File.csv
- 查看
File.xlsx
文件
- 使用
in2csv File.xlsx | head | cut -c 1-80
head
默认打印前10行内容;head -n
n 为行数,比如 head -3
- 请注意,这里的 n 行和我们的认知相比是少一行的。比如前三行是 1,2,3,那么使用 -3 这个参数只会打印出 1,2
cut
剪切后输出,-c
代表输出指定数量的词,-b
代表输出指定数量的字节。cut -c 1-80
输出1-80的词
- 使用 csvlook 查看
in2csv File.xlsx | head | csvcut -c ColumnA ColumnB | csvlook
csvcut -c ColumnA ColumnB
剪切表格中的 ColumnA 和 ColumnB
- 我们使用管道的方式,将 csvcut 结果输出到 csvlook 中,以指定的方式显示。显示的效果确实很整齐和直观,和 mardown 中的表格很相似。
- 如果一个 .xlsx 文件包含多个 sheet,in2csv 方法默认只显示第一张 sheet,如果需要提取另一张工作表,添加
--sheet
使用 curl 下载互联网数据
通过浏览器打开 URL,不同的 URL 有不同的后缀,而浏览器会默认识别。比如 .pdf
, .mp3
, 这种格式会自动打开,.html
则会自动跳转到相应的网页。
而使用 curl 方式,数据则会被封装下载
curl -s URL
, -s
是 silent
。这是因为 curl 在下载时会有默认的进度条,添加 -s 则此进度条默认不显示。
curl -s https://xxx/A.txt | head -10
下载 URL 中的 A.txt 并显示前十行。
- 请注意,由于有后面有 head 显示命令,请添加 -s 选项,因为不加的话显示信息的格式等可能会出现错误
curl -s https://xxx/A.txt > B.txt
将 A.txt 另存为 B.txt。
- 另存命令一定要加 -s 参数,不然保存的 B.txt 会出现多余文本
>
也可以换成 -o
,效果是一致的
- FTP 下载
curl -u username: password ftp://host/file
- 这条命令使用 -u 参数,username:password 是在这条 URL 受密码保护时添加使用。
如果 URL 是一个目录,那么 curl 会将目录内容列出来。
- 如果访问简写的 URL
curl -L j.mp/locatbbar
必须添加 -L
参数 或者 --location
参数。curl 会进行重定向
curl -I URL
返回相应信息的 HTTP 头部数据(报文)。当我们没有得到想要的结果的时候,就可以使用这条命令来查看目标网站的状态。
```bash
curl -I baidu.com
$ HTTP/1.1 200 OK
Date: Wed, 25 Sep 2019 08:10:10 GMT
Server: Apache
Last-Modified: Tue, 12 Jan 2010 13:48:00 GMT
ETag: "51-47cf7e6ee8400"
Accept-Ranges: bytes
Content-Length: 81
Cache-Control: max-age=86400
Expires: Thu, 26 Sep 2019 08:10:10 GMT
Connection: Keep-Alive
Content-Type: text/html
```
- HTTP 报文的第一行是状态码
调用 Web API
- API: Application Programming Interface 应用程序编程接口
- Web API 大多以 JSON, XML 这样的结构化形式返回数据。
- 结构化形式的数据的优势在于:易于被其他工具(比如 jq)处理
- 有的 API 是以流的形式返回数据。意味着只要连接 API 数据就会源源不断到达。
- 有的 API 需要使用 OAuth协议 登录。我们可以使用
curlicue
工具进行来快速进行握手。使用流程;
curlicue-setup
对特定的 API 获取授权
- 使用
curlicue
调用 API。