歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux基礎教程:Linux管理員都應該會的命令:sed和awk

Linux基礎教程:Linux管理員都應該會的命令:sed和awk

日期:2017/2/25 10:33:37   编辑:Linux教程
  1. awk '{ if (!seen[$0]) print $0; seen[$0]++ }’

這會產生相同的結果。

awk 是完成這項工作的完美工具。不過,我相信很多管理員--特別是新管理員會轉而使用 Bash 或 Python 來完成這一任務,因為對 awk 的知識和對它的能力的了解看起來隨著時間而慢慢被人淡忘。我認為這是標志著一個問題,由於對之前的解決方案缺乏了解,那些已經解決了幾十年的問題又突然出現了。

shell、grep、sed 和 awk 是 Unix 的基礎。如果你不能非常輕松的使用它們,你將會被自己束縛住,因為它們構成了通過命令行和腳本與 Unix 系統交互的基礎。學習這些工具如何工作最好的方法之一就是觀察真實的例子和實驗,你可以在各種 Unix 衍生系統的初始化系統中找到很多,但在 Linux 發行版中它們已經被 systemd 取代了。

數以百萬計的 Unix 管理員了解 Shell 腳本和 Unix 工具如何讀、寫、修改和用在初始化腳本上。不同系統的初始化腳本有很大不同,甚至是不同的 Linux 發行版也不同。但是它們都源自 sh,而且它們都用像 sed、awk 還有 grep 這樣的核心的命令行工具。

我每天都會聽到很多人抱怨初始化腳本太“古老”而且很“難”。但是實際上,初始化腳本和 Unix 管理員每天使用的工具一樣,還提供了一個非常好的方式來更加熟悉和習慣這些工具。說初始化腳本難於閱讀和難於使用實際上是承認你缺乏對 Unix 基礎工具的熟悉。

說起在 Reddit 上看到的內容,我也碰到過這個問題,來自一個新入行的 Linux 系統管理員, “問他是否應該還要去學老式的初始化系統 sysvinit”。 這個帖子的大多數的答案都是正面的——是的,應該學習 sysvinit 和 systemd 兩個。一位評論者甚至指出,初始化腳本是學習 Bash 的好方法。而另一個消息是,Fortune 50 強的公司還沒有計劃遷移到以 systemd 為基礎的發行版上。

但是,這提醒了我這確實是一個問題。如果我們繼續沿著消除腳本和脫離操作系統核心組件的方式發展下去,由於疏於接觸,我們將會不經意間使新管理員難於學習基本的 Unix 工具。

Copyright © Linux教程網 All Rights Reserved