你需要熟练运用的12个命令行工具
摘要: 本文簡要介紹了當(dāng)前較為流行的12種對數(shù)據(jù)科學(xué)任務(wù)有價值的類Unix操作系統(tǒng)命令行工具:wget,cat,wc,head,tail,find,cut,uniq,awk,grep,sed,history。
這篇文章簡要介紹了十幾種用于數(shù)據(jù)科學(xué)任務(wù)的類Unix操作系統(tǒng)命令行工具。這些工具并不包括通用的文件管理命令(pwd,ls,mkdir,rm,…)或遠(yuǎn)程會話管理工具(rsh,ssh,…),而是由對數(shù)據(jù)科學(xué)比較有用的實用程序組成,通常會涉及到不同程度的數(shù)據(jù)檢查和處理。這些工具都包含在一個典型的類Unix操作系統(tǒng)中。
這些都是公認(rèn)的初級階段所需要使用的工具,你也可以在這個基礎(chǔ)上自行查找一些命令的例子。工具名稱的鏈接是維基百科對該工具的介紹,而不是工具手冊,在我看來,對于新手來說,維基百科要比工具手冊要更實用。
1.wget
wget是一個文件檢索工具,基本用法則是遠(yuǎn)程下載文件。
2.cat
cat是對文件內(nèi)容進(jìn)行標(biāo)準(zhǔn)輸出。名稱來源于concatenate。用于將兩個文件組合在一起(實際連接)、將一個文件附加到另一個文件后、對文件行進(jìn)行編號等等。
3.wc
wc用于生成字?jǐn)?shù)、行數(shù)、字節(jié)數(shù)與文本文件的相關(guān)內(nèi)容。當(dāng)選項為空時,wc默認(rèn)輸出一行,從左到右分別是:行數(shù)、字?jǐn)?shù)(每一行中沒有中斷的單個字符串被計為單個字)、字符數(shù)和文件名(多個)。
4.head
head將文件的前n行(默認(rèn)為10)標(biāo)準(zhǔn)輸出。-n選項可以設(shè)置顯示的行數(shù)。
5.tail
tail用于輸出文件的尾部信息。
6. find
find用于搜索文件系統(tǒng)中的特定文件。
下圖中命令的含義:從當(dāng)前目錄(“.”)開始搜索以“iris”開始、任意類型字符結(jié)尾(“-name’iris *’”)、普通文件類型(“-type f“)的文件。
7.cut
cut用于從文件中提取文本中的一列。雖然提取出來的列可以使用各種標(biāo)準(zhǔn)進(jìn)行制作,但cut可以用于從CSV文件中提取一部分?jǐn)?shù)據(jù)。
下圖中命令的含義:使用逗號(“-d’,’”)作為字段分隔符輸出iris.csv文件的第五列(“-f 5”)。
8.uniq
uniq檢查及刪除相同的行或列,將文本文件進(jìn)行標(biāo)準(zhǔn)輸出。在命令行中構(gòu)建管道時,這個命令可能會很有用:將一個命令的輸出送到另一個命令的輸入等。
下圖中命令的含義:列出iris數(shù)據(jù)集類名第五列重復(fù)的次數(shù)。
9.awk
awk實際上并不是一個“命令”,而是一種完整的編程語言。用于處理和提取文本,并且可以在命令行以單行命令調(diào)用。
掌握awk需要花費一些時間,但在此之前,這是它能夠簡單完成的一個示例??紤]到我們的示例文件iris.csv相當(dāng)有限(尤其涉及到文本多樣性時),該行調(diào)用awk,在給定文件(“iris.csv”)內(nèi)搜索字符串“setosa” ,并逐一打印到標(biāo)準(zhǔn)輸出,并打印整行(保存在$ 0變量中)。
10. grep
grep是另一種文本處理工具,用于匹配字符串和正則表達(dá)式。
11. sed
sed是一個流編輯器,是另外一種文本處理和轉(zhuǎn)換工具,類似于awk。下圖中命令的含義:將iris.csv文件中“setosa”更改為“iris-setosa”。
12.history
history非常簡單,尤其是在你依賴于復(fù)制使用過的命令時,這個命令特別有用。
以上12個命令都是最基本的命令行工具,了解并熟悉其用法對你在數(shù)據(jù)科學(xué)的學(xué)習(xí)中大有用處。
原文鏈接
干貨好文,請關(guān)注掃描以下二維碼:
總結(jié)
以上是生活随笔為你收集整理的你需要熟练运用的12个命令行工具的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: AI开发者福音!阿里云推出国内首个基于英
- 下一篇: 阿里云大数据MaxCompute计算资源