3 3 2 檔案的比較與行編輯

2021-08-18 18:19:51 字數 2540 閱讀 3239

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的引用...