1.diff命令
1)diff命令作用
diff命令是用來比較兩個文件或目錄的不同
diff [options] target1 target2
diff file1 file2
diff direcory1 directory2
2)diff在比較文件過程中結果讀取方式
[num1 , num2][a|c|d][num3,num4]
num1,num2 | 表示在第一個文件中的行數 |
---|---|
a | 表示添加 ----add |
c | 表示更改 ----change |
d | 表示刪除 ----delete |
< | 表示第一個文件中的內容 |
> | 表示第二個文件中的內容 |
— | 分割線 |
num3,num4 | 表示在第二個文件中的行數 |
測試:
[root@shell_example mnt]# diff file1 file2
3c3,4 ##改變第一個文件中的第三行才能匹配第二個文件中的第三行和第四行
< 2 ##第一個文件中的第三行內容
---
> 02 ##第二個文件中的第三行和第四行內容
> 27
3)diff在比較目錄過程中結果的讀取
Only in directory/:filename
directory | 表示在哪個目錄中 |
---|---|
filename | 表示不同的那個文件 |
測試:
[root@shell_example mnt]# diff test1/ test2/
Only in test1/: hello ##不同的文件爲test1目錄下的hello文件
4)diff中常用的參數
-b 或 --ignore-space-change | 不檢查空格字符的不同 |
---|---|
-B 或 --ignore-blank-lines | 不檢查空白行 |
-c | 顯示全部內文,並標出不同之處 |
-i 或 --ignore-case | 不檢查大小寫的不同 |
-p | 若比較的文件爲 C 語言的程序碼文件時,顯示差異所在的 |
函數名稱 | |
-q 或 --brief | 僅顯示有無差異,不顯示詳細的信息 |
-r 或 --recursive | 比較子目錄中的文件 |
-u | 以合併的方式來顯示文件內容的不同 |
示例:
ddif -b file1 file2 ##不檢查空格字符的不同
diff -B file1 file2 ##不檢查空白行
diff -c file1 file2 ##顯示全部內文,並標出不同之處
*** file1 2019-02-28 01:02:00.274991808 -0500 ##***表示的文件爲file1
--- file2 2019-02-28 01:01:20.320991808 -0500 ##---表示的文件爲file2
***************
*** 1,4 **** ##file1文件一共4行
hello world
welcome
! ds ##!所標示的行爲與另一個文件不同的行
! hai
--- 1,3 ---- ##file2文件一共3行
hello world
welcome
! he
diff -i file1 file2 ##不檢查大小寫的不同
diff -q file1 fil2 僅顯示有無差異,不顯示詳細的信息
diff -r test1/ test2/ 比較子目錄中的文件
diff -u file1 file2 ##以合併的方式來顯示文件內容的不同(常用來生成補丁)
2.pacth
用於兩不同文件打補丁
1)服務下載
yum install pacth -y
2)命令格式
diff -u file1 file2 > file.path ##生成補丁
patch file.old file.path ##向老文件打補丁
patch -b file.old file.path ##保留原文件,執行後會出現一個後綴爲.orig的文件,其內便是原文件內容
測試:
保留原文件:
3.cut命令
1)cut 命令作用
cut命令多用與字符截取
2)cut命令用法
cut -d | 指定分隔符 |
---|---|
cut -f 1,7/1-7 | 指定截取的列 (,爲第幾列和第幾列 -爲第幾列到第幾列,實際運用需要加上-d指定分隔符) |
cut -c 1,4/1-4 | 指定截取的字符位置 |
測試:
cut -d : -f 1,7 passwd
cut -d : -f 1-7 passwd
cut -c 1,4 passwd
cut -c 1-4 passwd
4.sort命令
1)sort命令作用
sort命令多用於字符排序
2)sort命令用法
sort -n | 純數字排序 |
---|---|
sort -r 倒序 | |
sort -u | 去掉重複數字 |
sort -o | 輸出到指定文件中 |
sort -t | 指定分隔符 |
sort -k | 指定要排序的列 |
sort -n test ##純數字排序
sort -nr test ##純數字倒敘排列
sort -u test ##去掉重複數字
sort -n test -o test1 輸出到test1文件中
sort -t : -k 2 -n test ##對以:爲分隔符的第二列純數字排序
5.uniq命令
1)作用
對重複字符做相應的處理,常與sort -n 一同使用
2)用法
uniq -u | 顯示唯一的行 |
---|---|
uniq -d | 顯示重複的行 |
uniq -c | 每行顯示一次並統計重複次數 |
sort -n test | uniq -c ##對test進行排序每行顯示一次並統計重複次數
1 1 ##一個2
3 3 ##三個3
1 4
2 6 ##兩個6
1 12
1 24
1 66
uniq -u ##顯示唯一行
uniq -d ##顯示重複行
6.test 命令
test 命令和 [ ] 等同
test "$A" == "$B" 等同 [ "$A" == "$B" ]
用法
[ "$A" = "$B" ] ##A等於B
[ "$A" != "$B" ] ##A不等於B
[ "$A" -eq "$B" ] ##A等於B
[ "$A" -ne "$B" ] ##A不等於B
[ "$A" -le "$B" ] ##A小於或或等於B
[ "$A" -lt "$B" ] ##A小於B
["$A" -ge "$B" ] ##A大於或等於B
["$A" -gt "$B" ] ##A大於B
["$A" -ne "$B" -a "$A" -gt "$B" ] ##A不等於B 且 A大於B
["$A" -ne "$B" -o "$A" -gt "$B" ] ##A不等於B 或者 A大於B
[ -z "$A" ] ##A是否存在
[ -n "$A" ] ##A是否不存在
["file1" -ef "file2" ] ##file1和file2創建時間是否相同
["file1" -nt "file2" ] ##file1是否比file2創建時間晚(是否比他新)
["file1" -ot "file2" ] ##file1是否比file2創建時間早(是否比他老)
[-e "file" ] ##文件是否存在
[-f "file" ] ##文件是否爲純文本
[-L "file" ] ##文件是否爲鏈接
[-S "file" ] ##文件是否爲套接字
[-b "file" ] ##文件是否爲塊設備(磁盤)
[-d "file" ] ##文件是否爲目錄
[-c "file" ] ##文件是否爲字符設備
補充:
顯示大小寫的替換:
tr 'a-z' 'A-Z' < test