shell中的常用命令

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

在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章