摘要: 本文简要介绍了当前较为流行的12种对数据科学任务有价值的类Unix操作系统命令行工具:wget,cat,wc,head,tail,find,cut,uniq,awk,grep,sed,history。
这篇文章简要介绍了十几种用于数据科学任务的类Unix操作系统命令行工具。这些工具并不包括通用的文件管理命令(pwd,ls,mkdir,rm,...)或远程会话管理工具(rsh,ssh,...),而是由对数据科学比较有用的实用程序组成,通常会涉及到不同程度的数据检查和处理。这些工具都包含在一个典型的类Unix操作系统中。
这些都是公认的初级阶段所需要使用的工具,你也可以在这个基础上自行查找一些命令的例子。工具名称的链接是维基百科对该工具的介绍,而不是工具手册,在我看来,对于新手来说,维基百科要比工具手册要更实用。
1.wget
2.cat
cat是对文件内容进行标准输出。名称来源于concatenate。用于将两个文件组合在一起(实际连接)、将一个文件附加到另一个文件后、对文件行进行编号等等。
3.wc
wc用于生成字数、行数、字节数与文本文件的相关内容。当选项为空时,wc默认输出一行,从左到右分别是:行数、字数(每一行中没有中断的单个字符串被计为单个字)、字符数和文件名(多个)。
4.head
head将文件的前n行(默认为10)标准输出。-n选项可以设置显示的行数。
5.tail
6. find
下图中命令的含义:从当前目录(“.”)开始搜索以“iris”开始、任意类型字符结尾(“-name'iris *'”)、普通文件类型(“-type f“)的文件。
7.cut
cut用于从文件中提取文本中的一列。虽然提取出来的列可以使用各种标准进行制作,但cut可以用于从CSV文件中提取一部分数据。
下图中命令的含义:使用逗号(“-d','”)作为字段分隔符输出iris.csv文件的第五列(“-f 5”)。
##8.uniq
uniq检查及删除相同的行或列,将文本文件进行标准输出。在命令行中构建管道时,这个命令可能会很有用:将一个命令的输出送到另一个命令的输入等。
下图中命令的含义:列出iris数据集类名第五列重复的次数。
9.awk
awk实际上并不是一个“命令”,而是一种完整的编程语言。用于处理和提取文本,并且可以在命令行以单行命令调用。
掌握awk需要花费一些时间,但在此之前,这是它能够简单完成的一个示例。考虑到我们的示例文件iris.csv相当有限(尤其涉及到文本多样性时),该行调用awk,在给定文件(“iris.csv”)内搜索字符串“setosa” ,并逐一打印到标准输出,并打印整行(保存在$ 0变量中)。
10. grep
grep是另一种文本处理工具,用于匹配字符串和正则表达式。
11. sed
sed是一个流编辑器,是另外一种文本处理和转换工具,类似于awk。下图中命令的含义:将iris.csv文件中“setosa”更改为“iris-setosa”。
12.history
history非常简单,尤其是在你依赖于复制使用过的命令时,这个命令特别有用。
以上12个命令都是最基本的命令行工具,了解并熟悉其用法对你在数据科学的学习中大有用处。
文章原标题《Top 12 Essential Command Line Tools for Data Scientists》