Linux diff tr tee 命令
而且都是以第一個文件來作為操作對象:
第一個文件與第二個文件相比多的,要刪除,少的要增加。就是最後會把第一個文件變得的第二個文件一樣。
舉例兩文件1.txt和2.txt:
1d0:第一個文件第一行刪除才和第二個文件第0行一樣(才就是最開頭行)
< Hi,
2a2:第一個文件第二行增加才和第二個文件第二行一樣
> Hi,
4,5c4:第一個文件第四,五行改變才和第二個文件第四行一樣
< I am fine,
< Thank you.
---
> I am fine.
'<'代表刪除的行,而'>'代表添加的行。
y或--side-by-side 以並列的方式顯示文件的異同之處。
-W<寬度>或--width<寬度> 在使用-y參數時,指定欄寬。
“|”表示前後2個文件內容有不同
“<”表示後面文件比前面文件少了1行內容
“>”表示後面文件比前面文件多了1行內容
-c 顯示全部內文,並標出不同之處。
“+” 表示後面的文件比前面多了1行內容
“-” 表示後面的文件比前面少了1行內容
“!” 表示前後2個文件內容有不同
"---"表示變動前的文件,"+++"表示變動後的文件
-q或--brief 僅顯示有無差異,不顯示詳細的信息。
-u,-U或--unified= 以合並的方式來顯示文件內容的不同。
前面的"-1,5"分成三個部分:減號表示第一個文件,"1"表示第1行,"5"表示連續5行。合在一起,就表示下面是第一個文件從第1行開始的連續5行。同樣的,"+1,4"表示變動後,成為第二個文件從第1行開始的連續4行。
如何理解,下圖:
如果兩個文件含有相同的文本但是大小寫不同,diff命令仍會默認報告它不同
-i 忽略大小寫
但這樣就會沒有輸出生成,因為當兩個文件相同時的默認行為,如果想看到提示說相同的話:
-s 選項報告兩個文件相同
使用 -b 忽略空格
比較兩個文件不同,並生產補丁
除了文件外,diff命令還可以比較兩個目錄
vimdiff
只有一個文件中有的行,顏色相對
兩個文件中都存在,但是包含差異的行為一種顏色,引起差異還會加字體背景
ctrl + w + w 左右切換 或者上下切換
dp 把左邊光標所在的行復制到右邊對應的行
do 把右邊的復制到左邊光標所在的對應的行
https://jingyan.baidu.com/article/ae97a646da05debbfd461d33.htmltr
容易地實現 sed 的許多最基本功能。
可以用一個字符來替換另一個字符,或者可以完全除去一些字符。也可以用來除去重復字符
逐個字符的替換且替換不修改源文件
小寫替換成大寫
去除Z的字符
刪除換行符
PS:不可見字符都得用轉義字符來表示的,這個都是統一的
將換行符替換成:
除了a-z 以及換行符以外的,都刪除
除了1-2數字以外的,都刪除
刪除重復的
tee
我們平常比如 ls >a.txt,這時我們就不能看到輸出了
ls | tee /tmp/ls.txt
-a 追加輸入
把標準錯誤也輸入到文件裏
雖然重復打印,但追加到文件中的只有一次
Linux diff tr tee 命令