《初入linux》--第十四部分-shell 脚本命令

1.diff  比较命令

diff   file1  file2         //比较文件的不同

例:比较file1 和 file2

[root@mazha1 mnt]# echo hello world!  > file1
[root@mazha1 mnt]# echo HELLO WORLD!  > file2
[root@mazha1 mnt]# diff file1 file2
1c1
< hello world!
---
> HELLO WORLD!

    -c                  显示周围行

    -u              按统一格式输出补丁

    -r              比较目录的不同

例:比较目录:

[root@mazha1 mnt]# diff -r /mnt /var
Only in /var: account
Only in /var: adm
Only in /var: cache
Only in /var: crash
Only in /var: db


2.patch  补丁命令

patch       file    file.path        //打补丁

                  -b          备份源文件

*********3.grep  过滤命令 *********

grep   关键字  文件/目录         //过滤出的信息以高亮显示

例:


[root@mazha1 mnt]# grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin


grep    -i          忽略大小写

[root@mazha1 mnt]# grep -i MAZHA /etc/passwd
mazha:x:1000:1000:mazha:/home/mazha:/bin/bash

            -n          显示关键字所在行

[root@mazha1 mnt]# grep -n mazha /etc/passwd
44:mazha:x:1000:1000:mazha:/home/mazha:/bin/bash

            -c          显示过滤结果个数

            -v          反向过滤

            -E         “关键字1|关键字2” 过滤多个关键字

            -r          过滤目录中含有的关键字

例:找出文件中不含root和mazha的行:

[root@mazha1 mnt]# cat file1 
mazha
mazha /root
root
lilei
hanmei
tutu
[root@mazha1 mnt]# grep -vE 'root|mazha' /mnt/file1 
lilei
hanmei
tutu

注:    ^关键字   表示以关键字为行首

    关键字$   表示以关键字为行尾

[root@mazha1 mnt]# grep -v '^r' /mnt/file1 
mazha
mazha /root
 root
lilei
hanmei
tutu
此时,除了以 r 为行首的行,其他都被打印

4.cut   截取信息命令

cut     截取字符

          -d             指定分隔符

          -f 1,7        显示指定的列

          -c 1-7      显示指定字符        

一般使用格式为:  cut   -d   '分隔字符'  -f  1,7

例:从ifconfig eth0 输出中截取ipv4地址

[root@mazha1 network-scripts]# ifconfig eno16777736 | grep inet | grep -v inet6 | cut -d ' ' -f 10
192.168.10.22



5.sort  排序命令

sort file           末认按照行首字符进行排序

        -n      纯数字排序

        -u      去冗余排序

        |uniq -c    去除冗余并统计冗余次数

        -t      指定分隔符

        -k      指定列

例:

[root@mazha1 mnt]# sort file1 
098577
11111
123
143366
234
321
456
654

6.uniq  冗余相关命令

  uniq   file             去冗余显示内容

        -c      去冗余并统计冗余次数

        -d      显示冗余行

        -u      显示唯一行

例:

[root@mazha1 mnt]# uniq -c file1 
      1 123
      3 321
      1 456
      2 654
      1 234
      2 11111
      1 143366
      1 098577

7.sed   替换命令

  sed   ‘s/原字符/替换字符/g'    file  

  sed    -e   '策略1'     -e    '策略2'    file

  sed -i file               被转换后的内容输入到指定文件

  sed ‘3,5s/原字符/替换字符/g’       3-5行替换

  sed 3d                屏蔽指定的第三行

  sed 3p                复制第三行

  sed -n 3p             只显示第三行  

注:不导入文件的话,只作输出用,不保存。

例:

把文件中的1替换成9,2替换成8

[root@mazha1 mnt]# sed -e 's/1/9/g' -e 's/2/8/g' file1 
983
389
389
389
456
654
654
834
99999
99999
943366
098577



8.awk简介

AWK是一种处理文本文件的语言,是一个强大的文本分析工具。
awk [选项参数] 'script' var=value file(s)
。。。怎么这么复杂。。。秀逗麻袋。。看不太懂啊。。
涉及到环境变量,脚本,大家想看的还是先看大神写的~~
awk用法详解

你可能感兴趣的:(linux,虚拟机,管理)