Shell三剑客

一,,shell脚本中常用命令:
1,diff命令:
diff命令是以逐行的方式,比较文本文件的异同处。如果该命令指定进行目录的比较,则将会比较该目录中具有相同文件名的文件,而不会对其子目录文件进行任何比较操作。
使用规则:

diff  [options]  target1 target2
diff file1 file2
diff direcory1 directory2

#输出结果含义:
[num1,num2][a|c|d][num3,num4]
num1,num2表示在第一个文件中的行数
a表示添加----add
c表示更改----change
d表示删除----delete
<表示第一个文件中的内容,>表示第二个文件中的内容,---分割线
num3,num4表示在第二个文件中的行数
2,4c2,4表示改变第一个文件中的第二行和第四行才能匹配第二个文件中的第二行和第四行

#参数:
-b或--ignore-space-change  不检查空格字符的不同
-B或--ignore-blank-lines  不检查空白行
-c  显示全部内文,并标出不同之处
-i或--ignore-case  不检查大小写的不同
-p:若比较的文件为C语言的程序码文件时,显示差异所在的函数名称;
-q或--brief:仅显示有无差异,不显示详细的信息
-r或--recursive:比较子目录中的文件
-u 以合并的方式来显示文件内容的不同

2,cut命令:cut命令多用与字符截取

cut -d          指定分隔符
cut -f  1,7|1-7     指定截取的列
cut -c  1,4|1-4 指定截取的字符位置

3,uniq:重复字符做相应的处理

uniq -u     显示唯一的行
uniq -d     显示重复的行
uniq -c     每行显示一次并统计重复次数

4,sort:多用于字符排序

sort -n     纯数字排序
sort -r     倒序
sort -u     去掉重复数字
sort -o     输出到指定文件中
sort -t     指定分隔符
sort -k     指定要排序的列

5,test命令:
test命令和[]等同
test “ A"==" A "==" B” 等同 [ “ A"==" A "==" B” ]

[ "$A" == "$B" ]                        #等于         
[ "$A" != "$B" ]                        #不等于    
[ "$A" -eq "$B" ]                        #等于
[ "$A" -ne "$B" ]                        #不等于
[ "$A" -le "$B" ]                        #小于等于
[ "$A" -lt "$B" ]                        #小于
[ "$A" -ge "$B" ]                        #大于等于
[ "$A" -gt "$B" ]                        #大于
[ "$A" -ne "$B" -a "$A" -gt "$B" ]                #整数1不等于整数2话并且整数1大于整数2
[ "$A" -ne "$B" -o "$A" -gt "$B" ]              #整数1不等于整数2话或者整数1大于整数2
[ -z "$A" ]                            #字符串的长度是否为零
[ -n "$A" ]                            # 字符串的长度非零
[ "file1" -ef "file2" ]                     #两个文件是否为同一个文件,可用于硬连接。主要判断两个文件是否指向同一个inode。      
[ "file1" -nt "file2" ]                     #判断文件1是否比文件2新
[ "file1" -ot "file2" ]                     #判断文件1比是否文件2旧
[ -e "file" ]                           #如果文件存在,则为真;
[ -f "file"  ]                          #如果文件为一个普通文件,则为真;
[ -S "file" ]                           #如果文件为一个套接字特殊文件,则为真;
[ -b "file" ]                               #如果文件为一个块特殊文件,则为真;
[ -d "file" ]                           #如果文件为一个目录,则为真;
[ -c "file" ]                           #如果文件为一个字符特殊文件,则为真;

6,shell中的文本处理:
1)grep 命令是一种强大的文本搜索工具,根据用户指定的“模式”对目标文本进行匹配检查,打印匹配到的行

grep    匹配条件        处理文件
例如
        grep          root      passwd   #过滤含有root的行
        grep         ^root      passwd   #过滤以root开头的行
        grep          root$        passwd   #过滤以root结尾的行
        grep       -i    root       passwd   #过滤含有root的行
        grep      -E    "root|ROOT" passwd   #不区分大小写过含有root的行
#准确匹配关键字:
\<关键字
关键字\>
\<关键字\>

2)sed 行编辑器
stream editor(流编辑器)
用来操作纯 ASCII 码的文本
处理时,把当 前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space)可以指定仅仅处理哪些行
sed 符合模式条件的处理 不符合条件的不予处理
处理完成之后把缓冲区的内容送往屏幕
接着处理下一行,这样不断重复,直到文件末尾

sed 对字符的处理
p 显示
d 删除
a 添加
c 替换
w 写入
i 插入

p模式操作
sed -n ‘/:/p’ fstab
sed -n ‘/UUID$/p’ fstab
sed -n ‘/^UUID/p’ fstab
sed -n ‘2,6p’ fstab
sed -n ‘2,6!p’ fstab

d模式操作
sed ‘/^UUID/d’ /etc/fstab
sed ‘/^#/d’ /etc/fstab
sed ‘/^$/d’/etc/fstab #显示以空格开头,空格结尾
sed ‘1,4d’/etc/fstab
sed –n ‘/^UUID/!d’ /etc/fstab

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值