以例子簡介 ‘comm’ 指令

comm 是一個用作逐行比較兩個已排序檔案的指令,我們可以在多種情況下使用它,在討論實用例子前,讓我們先了解一下它是如何運作的。 ‘comm’ 指令是如何運作的 在沒有提供選項執行時 讓我們用例子看看 comm 指令是如何運作的,在以下例子中,我們需要創建兩個檔案: file1.txt Apple Banana Cat file2.txt Banana Whatever 我們可以把這兩個檔案作為指令的引數 (argument),並且不提供選項地執行這指令,看看 comm 會給我們怎樣的輸出。 noob@learnfromnoobs:~$ comm file1.txt file2.txt Apple Banana Cat Whatever 這結果看上來有點奇怪…… 到底這個輸出在表達甚麼呢?其實,如果在執行 comm …

[Unix/Linux] 刪除在另一個文件中存在的行

有時,我們需要在一個文件中刪除在另一個文件中存在的行,這通常發生在當我們需要從配置文件中刪除一些配置的時候,如果只有幾行需要刪除,這當然很容易,但是當我們要在多台主機上刪除許多行時,這將變得乏味且容易出錯, 我們應該使用一些自動的方法,而不是手動地把一行行刪除。(當然,我們仍然應該核對最後的結果是否正確。) 我們將使用一個簡單的示例來說明如何刪除這些行,假設我們正在組織一個派對,我們有兩個文件:all.txt 包含我們所有的朋友,而 remove.txt 包含不參加派對的朋友。 all.txt John Tom Tony Alex Michael Kalvin remove.txt Tony Alex Chris 留意雖然 “Chris” 存在於 remove.txt 內, 但卻不存於 all.txt 之中,在現實情況中,被要求刪除一行不存在的配置也是件相當平常的事。 如果文件中行的排序不能改變 1. grep -Fvxf remove.txt …

在 Linux 上還原 home directory 中的 dot files 至預設版本

簡介 我們都是人,少不免會犯錯,你有沒有試過搞砸你的 dot files?我試過,但很幸運,我有恆常備份的習慣,所以我只需要把檔案還原至我的備份版本,恆常備份 dot files 是一個好習慣,你甚至可以把你的 dot files 上傳到 Github。我很幸運有檔案的備份,但如果我沒有備份,那我可以怎樣恢復我的檔案呢?當然,我們可以直接在 Github 上抓別人的的 dot files 來使用,不過,在這篇文章中,我們會教你如何還原 dot files 至系統的預設版本。 如何還原 home directory 中的 dot files? 在 Linux 中,有一個特別的 directory 稱作 …

以例子簡介 ‘find -ok’ 和 ‘find -okdir’

簡介 在這篇文章中,我們會示範使用 find -ok 和 find -okdir 這兩個指令,這兩個指令跟 find -exec 和 find -execdir 有一樣的功能,不過,在執行指令前,他們先會跟你確認你是否真的想在該檔案上執行該指令,如果你想要更加小心,這些指令會是你的好幫手。 我們已經在這篇文章中解釋過 find -exec 和 find -execdir 之間的分別,今次我們不會再作解釋,如果你有興趣,可以看看該篇文章。 讓我們一起看看這些指令有甚麼不同吧。 創建以下的檔案架構。 noob@learnfromnoobs:~$ tree find-test/ find-test/ ├── dir1 │   …

以例子解釋 ‘find -exec’ 與 ‘find -execdir’ 的不同

find -exec 是一個很常用的指令,但有些人並不知道 find -execdir 這個指令的存在以及它們的分別,在這篇文章中,我們會探討這兩個指令的分別。 1. ‘find -exec’ 跟 ‘find -execdir’ 在不同的位置執行 find -exec 會在起始的位置執行,而 find -execdir 則會在目標存在的位置執行。 指令 執行位置 find -exec 起始的位置 find -execdir 目標存在的位置 讓我們用例子解說一下吧。 創建以下的檔案架構。 noob@learnfromnoobs:~$ …