diff命令用於比較兩個檔案之間的區別。
diff命令在比較兩個檔案時(新版本的diff支援比較二進位制檔案),會逐行對兩個檔案的異同進行比較輸出。
diff命令在比較兩個目錄時,則只會對檔案中的相同檔名進行比較。
語法:diff [選項] 檔案1/目錄1 檔案2/目錄2
選項:
-b 不檢查空格字元的不同。
-b 不檢查空白行。
-c 顯示全部內文,並標出不同之處。
-i 不檢查大小寫的不同。
-r 比較子目錄中的檔案。
[root@centos7 ~]# diff -c /root/tail.txt /data/tail.txt
*** /root/tail.txt 2018-04-14 10:45:28.658504821 +0800
--- /data/tail.txt 2018-04-14 10:45:12.840503600 +0800
***************
*** 1,3 ****
aaaaaa
! aaabc
--- 1,3 ----
aaaaaa
! aaabb
diff命令的輸出會被儲存在一中名叫「補丁」的檔案中,可以使用 -u 選項來進行還原,也可以用patch命令進行對修改過的檔案備份。
語法:diff -u 檔案 備份》檔案(將檔案還原至備份)
patch -d 檔案 備份 (將修改過後的內容新增至備份)
sed
命令用於處理編輯行內的內容。sed工具在執行時,一次處理一行的內容。處理時,sed會將行中的內容讀入臨時的緩衝區(模式空間),然後對緩衝區中的內容進行處理,並不會修改原始檔。處理後再將處理完畢的內容輸出,然後讀入下一行內容。
選項:
-n:不輸出模式空間內容到螢幕,即不自動列印
-e: 多點編輯
-f: /path/script_file: 從指定檔案中讀取編輯指令碼
-r: 支援使用擴充套件正規表示式
-i.bak: 備份檔案並原處編輯
位址:
#: 指定的行,$:最後一行
/pattern/:被此處模式所能夠匹配到的每一行
n,m: 第n行到第m行
n,+m: 第n行到n+m行
/pat1/,/pat2/: 被兩個模式匹配的行之間
n,/pat1/: 第n行到被模式匹配的行
n~m:從第n行開始。每隔m行匹配一次
命令:
d: 刪除模式空間匹配的行,並立即啟用下一輪迴圈
p:列印當前模式空間內容,追加到預設輸出之後
a [\]text:在指定行後面追加文字---|
i [\]text:在行前面插入文字--------|-支援使用\n實現多行追加
c [\]text:替換行為單行或多行文字-|
w 檔案: 儲存模式匹配的行至指定檔案
r 檔案:讀取指定檔案的文字至模式空間中匹配到的行後
=: 為模式空間中的行列印行號
!:模式空間中匹配行取反處理
s/find/replace/mark 將find匹配的內容替換為replace。其中 / 可以使用 # 、%或者 @ 代替作為分隔符。
mark:
g: 行內全域性替換
p: 顯示替換成功的行
w 檔案:將替換成功的行儲存至檔案中
使用ifconfg命令檢視指定網絡卡的ipv4位址
[root@centos7 ~]# ifconfig ens33 | sed -n '2p' | sed -r 's@.*inet (addr:)?(.*) (bcast|netmask).*@\2@'
192.168.30.2
高階編輯命令:
p:列印模式空間開端至\n內容,並追加到預設輸出之前
h: 把模式空間中的內容覆蓋至保持空間中
h:把模式空間中的內容追加至保持空間中
g: 從保持空間取出資料覆蓋至模式空間
g:從保持空間取出內容追加至模式空間
x: 把模式空間中的內容與保持空間中的內容進行互換
n: 讀取匹配到的行的下一行覆蓋至模式空間
n:讀取匹配到的行的下一行追加至模式空間
d: 刪除模式空間中的行
d:如果模式空間包含換行符,則刪除直到第乙個換行符的模式空間中的文字,並不會讀取新的輸入行,而使用合成的模式空間重新啟動迴圈。如果模式空間不包含換行符,則會像發出d命令那樣啟動正常的新迴圈
將文字檔案的n和n+1行合併為一行,n為奇數行
[root@centos7 data]# seq 1 10 | sed 'n;s/\n/ /'
1 23 4
5 67 8
9 10
二 檔案與目錄
struct stat include include include int open char pathname,int o mode t mode 返回檔案描述符 include int close int fd 關閉檔案 include ssize t read int fd,void bu...
18 檔案與目錄
模式 說明r唯讀 r 讀寫 w寫入,先刪除原檔案,在重新寫入,如果檔案沒有則建立 w 讀寫,先刪除原檔案,在重新寫入,如果檔案沒有則建立 可以寫入輸出 a寫入,在檔案末尾追加新的內容,檔案不存在,建立之 a 讀寫,在檔案末尾追加新的內容,檔案不存在,建立之 b開啟二進位制檔案。可以與r w a 結合...
6 6檔案共享與檔案保護
6.6.1 基於索引點的共享方式 樹形結構,將共享檔案或子目錄鏈結到兩個 或多個 使用者的目錄中,樹形結構 有向非迴圈圖。問題 新增內容不能被共享 解決 引用索引點 穩健的實體地址及其它的檔案屬性等資訊,不再時放在目錄項中,而是放在索引結點中。索引點中,還有乙個鏈結計數count,類似於ios的引用...