当前位置: 首页 > 科技观察

数据科学家必备!12个基本命令行工具帮你摆脱鼠标

时间:2023-03-19 10:21:00 科技观察

数据科学家必备!12个基本命令行工具帮你摆脱鼠标简要介绍12种Unix操作系统命令行工具,以及这些命令行工具对数据科学研究和数据科学家的价值。这篇文章概述了12个适用于类Unix操作系统的命令行工具,您可以将它们用于数据科学项目。这个工具列表不包括任何基本的文件管理命令(pwd、ls、mkdir、rm...)和远程桌面管理工具(rsh、ssh...),但是从数据科学的角度来看,这些命令行工具比较实用,通常用于不同层次的数据检查和数据处理。这一系列的命令行工具包含在一个特殊的类Unix操作系统中。这些当然是最基本的操作命令,但我还是鼓励大家多找一些特定命令行的应用实例。在本文中,工具名称可以直接链接到维基百科条目,而不是Linux手册页。我觉得前者对新手比较友好。Linux手册页:https://linux.die.net/man/1。wgetWget是一个文件检索工具,用于从远程位置下载文件。下载远程文件的基本用法如下:wget:https://en.wikipedia.org/wiki/wget~$wgethttps://raw.githubusercontent.com/uiuc-cse/data-fa14/gh-pages/data/iris.csv--2018-03-2018:27:21--https://raw.githubusercontent.com/uiuc-cse/data-fa14/gh-pages/data/iris.csvResolvingraw.githubusercontent.com(raw.githubusercontent.com)...151.101.20.133Connectingtoraw.githubusercontent.com(raw.githubusercontent.com)|151.101.20.133|:443...connected.HTTPrequestsent,awaitingresponse...200OKLength:3716(3.6K)[text/plain]保存到:'iris.csv'iris.csv100[===========================================================================================================>]3.63K--.-KB/sin0s2018-03-2018:27:21(19.9MB/s)-'iris.csv已保存[3716/3716]2。catcat是一个标准输出文件内容的工具,名字来源于单词concatenate。它可以用于实现一些更复杂的文件处理,包括将文件合并在一起(即真正的文件串联)、将文件追加到另一个文件以及对文件行编号等功能。猫:https://en.wikipedia.org/wiki/Cat_(Unix)~$catiris.csvsepal_length,sepal_width,petal_length,petal_width,species5.1,3.5,1.4,0.2,setosa4.9,3,1.4,0.2,setosa4.7,3.2,1.3,0.2,setosa4.6,3.1,1.5,0.2,setosa5,3.6,1.4,0.2,setosa...6.7,3,5.2,2.3,virginica6.3,2.5,5,1.9,virginica6.5,3,5.2,2,virginica6.2,3.4,5.4,2.3,virginica5.9,3,5.1,1.8,virginica3。wcwc命令用于生成字数、行数、字节数和文本文件相关的内容。当不设置其他选项时,wc默认输出一行,从左到右依次为行数、字数(注意:每行没有空格的单个字符串算作一个字)、字符数和文件名。wc:https://en.wikipedia.org/wiki/Wc_(Unix)~$wciris.cs1511513716iris.csv4。headhead命令以标准方式输出文件的前n行(默认为10行),可以用-显示行数-n项的设置如下。头部:https://en.wikipedia.org/wiki/Head_(Unix)~$head-n5iris.csvsepal_length,sepal_width,petal_length,petal_width,species5.1,3.5,1.4,0.2,setosa4.9,3,1.4,0.2、setosa4.7、3.2、1.3、0.2、setosa4.6、3.1、1.5、0.2、setosa5。tail接下来猜猜tail是用来实现什么功能的?尾巴:https://en.wikipedia.org/wiki/Tail_(Unix)~$tail-n5iris.csv6.7,3,5.2,2.3,virginica6.3,2.5,5,1.9,virginica6.5,3,5.2,2,virginica6.2,3.4,5.4,2.3,virginica5.9,3,5.1,1.8,virginica6.findfind是一个文件系统工具,用于搜索特定文件。下面的命令是在树形结构中搜索特殊文件的例子,即从当前目录(“.”)开始,搜索以“iris”开始,以任意字符结束,类型为普通文件类型(“-typef”)文档:查找:https://en.wikipedia.org/wiki/Find_(Unix)~$find.-name'iris*'-typef./iris.csv./notebooks/kmeans-sharding-init/sharding/tests/results/iris_time_results.csv./notebooks/ml-workflows-python-scratch/iris_raw.csv./notebooks/ml-workflows-python-scratch/iris_clean.csv...7.cutcut命令用于文本分割,虽然cut用于分割文本可以在各种标准上完成,但它对于CSV文件中的列数据提取特别有用。下面的命令是输出逗号分隔符(“-d','”)的iris.csv文件的第五列(“-f5”):cut:https://en.wikipedia.org/wiki/Cut_(Unix)~$cut-d','-f5iris.csvspeciessetosasesetosasetosa...8.uniquniq是一个通过删除文本中的重复行来标准化文本输出的工具。就其本身而言,这似乎没什么用,但是当用于构建管道(将一个命令的输出连接到另一个命令的输入等)时,它会变得非常有用。uniq:https://en.wikipedia.org/wiki/Uniq以下命令会导致iris数据集第五列中包含的不同类别及其计数:~$tail-n150iris.csv|cut-d","-f5|uniq-c50setosa50versicolor50virginicawhatthecowsaid9.awkawk其实不是一个“命令”,而是一套完整的编程语言。它用于处理和提取文本,可以作为单行程序从命令行调用。awk:https://en.wikipedia.org/wiki/AWK完全掌握awk需要一些时间,但在此之前,这里有一个练习示例。考虑到示例文件iris.csv的文本多样性相当有限,以下命令调用awk在给定文件(“iris.csv”)中搜索字符串“setosa”并替换所有条目(在$0变量中保存)标准输出一一如下:~$awk'/setosa/{print$0}'iris.csv5.1,3.5,1.4,0.2,setosa4.9,3,1.4,0.2,setosa4.7,3.2,1.3、0.2、setosa4.6、3.1、1.5、0.2、setosa5、3.6、1.4、0.2、setosa10。grepgrep是另一种文本处理工具,用于查找匹配的字符串和正则表达式。grep:https://en.wikipedia.org/wiki/Grep~$grep-i"vir"iris.csv6.3,3.3,6,2.5,virginica5.8,2.7,5.1,1.9,virginica7.1,3,5.9,2.1,virginica...当你需要花费大量时间进行文本处理时,grep无疑是你需要掌握的好工具。更多有用的信息,请参考网站:https://www.thegeekstuff.com/2009/03/15-practical-unix-grep-command-examples。11、sedsed是一个流编辑器,也是一个文本处理和转换工具,类似于awk。下面我们将使用此命令将iris.csv文件中的“setosa”更改为“irissetosa”:sed:https://en.wikipedia.org/wiki/Sed~$sed's/setosa/iris-setosa/g'iris.csv>output.csv~$headoutput.csvsepal_length,sepal_width,petal_length,petal_width,species5.1,3.5,1.4,0.2,iris-setosa4.9,3,1.4,0.2,iris-setosa4.7,3.2,1.3,0.2,鸢尾花...12。historyhistory很简单,但也很有用,尤其是当你需要使用命令语句来完成一些重复的数据准备工作时。历史:https://en.wikipedia.org/wiki/History_(Unix)~$history547tailiris.csv548tail-n150iris.csv549tail-n150iris.csv|cut-d","-f5|uniq-c550clear551history到目前为止,这篇文章有通过对所有12个方便的命令行工具的简要介绍,这只是您可能用于数据科学(或任何其他目标)的命令行工具的粗略体验。现在,是时候让他们将您的工作效率从鼠标中解放出来了。原文链接:https://www.kdnuggets.com/2018/03/top-12-essential-command-line-tools-data-scientists.html【本文为专栏组织大数据文摘、微信原创翻译公众号《大数据文摘(id:BigDataDigest)》】点此查看作者更多好文