前言
这本书的作者真是一位大神啊, 在命令行里面出神入化的完成了数据科学的常见步骤: 数据抽取、清洗、建模, 等等。
不过从目前我自己的角度来看, 主力开发语言应该还是Python, 但是可以使用命令行的方式加速、优化之前简单的数据预览的过程。
举个例子: 之前在命令行之中, 指挥简单的head -n / tail -n / jq
命令。 但是比如预览一个CSV文件, 如何更清晰的进行展示?
下面总结一下书中提到的并且个人觉得比较实用的一些命令行工具
注意: 在这里仅仅只是提一下相应的一些工具, 具体的详细的使用教程, 还请自行Google。
unpack
我们命令的数据源, 可能是各种各样的压缩方式,常见的有: zip / tar.gz
, 但是有时候也有一些其他的压缩方式。 如果我们对命令行很熟悉, 自然可以相应的解压命令。 但是如果使用unpack的话, 他会自动判断压缩的方式, 然后自动调用相应的命令进行解压。生产效率还是要更高一些的。
cowsay
不光有正常的, 也有一些辣眼睛的:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
$ cowsay -f sodomized-sheep what the fuck? ________________ < what the fuck? > ---------------- \ __ \ (oo) \ ( ) \ /--\ __ / \ \ UooU\.'@@@@@@`.\ ) \__/(@@@@@@@@@@) / (@@@@@@@@)(( `YY~~~~YY' \\ || || >> |
更多的请参考: https://en.wikipedia.org/wiki/Cowsay
alias
一个别名的小工具。对Linux命令比较熟的应该早就用过了。 比如常见的:ll
命令, 就是 ls -lh
的别名。有追求的程序员,都应该把自己常见的操作设置一个快捷键, 提供生成效率
csvkit
csvkit并不是单独的一个命令, 而是一个命令行工具集。 内含的主要工具:
* csvlook
直接在命令行显示CSV的格式.
* csvcut
* csv2sql
* sql2csv
* in2csv: 输入Excel, 输出CSV
还有很多其他的工具, 具体可以参考官网:https://csvkit.readthedocs.io/
tr (即translate)
比如我们需要对一个字符串进行替换,就可以使用这个命令了。
* 正则表达式替换
1 2 3 |
echo "HELLO WORLD" | tr 'A-Z' 'a-z' # hello world |
- 删除
1 2 3 |
echo "hello 123 world 456" | tr -d '0-9' # hello world |
- 删除Windows的
^M
字符
1 2 3 4 |
cat file | tr -s "\r" "\n" > new_file 或 cat file | tr -d "\r" > new_file |
uniq
去重。比如文本:
1 2 3 4 5 |
a a b b |
1 2 3 4 5 |
cat text.txt | uniq # Out: # a # b |
其他一些:
- curlicue: 使用
curl
来处理OAuth请求 - curl + FTP: 很多时候数据在FTP上面, 直接使用curl即可
- random: 随机抽样 + 延时发送文本(这就是一个文本流了)
cp sample-{1,2}.sh
: 等价于cp sample-1.sh sample-2.sh
- shebang:
#!/usr/bin/env bash
本文原创, 转载需要著名出处:www.flyml.net

文章评论