shell文本处理工具

1、grep:是行过滤工具,用于根据关键字进行过滤

语法:grep [选项] ‘关键字’ 文件名

           grep --color=auto 'root' /etc/passwd

选项参数:-i:不区分大小写

                  -v:查询不包含指定内容的行

                  -n:显示行号

                   -A:显示匹配行及后面多少行(after)

                   -B:显示匹配行及前面多少行(before)

                   -C:显示匹配行前后多少行

                    -w:按单词搜索

                    -o:只打印匹配到的关键字

                     -c:统计匹配到的次数

                     ^key:以某个关键字开头

                     key$:以某个关键字结尾

                     ^$:匹配空行

更改命令别名:

临时修改:alias grep=‘grep --color=auto’

永久生效:进入/etc/bashrc  按Shift+G到最后一行然后按小o在最后一行下面添加alise grep=‘grep --color=auto’

                  为了让其他用户别名也生效需要source /etc/bashrc

2、cut工具:是列截取工具,用于列的截取

      语法:cut 选项 文件名

       常见选项:

          -c:以字符为单位进行分割截取

          -d:自定义分隔符,默认为制表符(Tab键)

           -f:与-d一起使用,指定截取哪个区域

          示例:cut -d ':' -f1 /etc/passwd      截取第一个冒号前面的内容 f2就是第二列

                     cut -d ':' -f1,7 /etc/passwd   截取第一列和第七列

3、sort工具:用于排序,按升序排列

  语法和选项:

   -u:去除重复行

    -r:降序排列,默认是升序

    -o:将排序结果输出到文件中,类似重定向符号>

    -n:以数字排序,默认是按字符排序

     -t:分隔符

     -k:第N列

     -R:随机排序,每次运行的结果不同

4、uniq工具:去除连续的重复行

   选项:

-i:忽略大小写

-c:统计重复行的次数

-d:只显示重复的行

5、tee工具:屏幕输出和文件输入同时生效(默认覆盖)

 选项:-a:追加

6、diff工具:用于逐行比较文件的不同

 文件1如何改变才能和文件2匹配

语法:diff 选项 文件1 文件2

选项:

-b:不检查空格

-B:不检查空白行

-i:不检查大小写

-w:忽略所有的空格

--normal:正常格式显示(默认)

-c:上下文格式显示

-u:合并格式显示

比较文件夹内文件是否一样需要加-q

通过打补丁方式让file1和file2文件内容一致

1、diff -u file1 file2 > file.patch    找出文件不同,然后输出到file.patch

2、patch file1 file.patch 将两个文件不同的地方到补丁只file1中使file1和file2相同

3.diff file1 file2 测试验证

7、paste工具:用于合并文件行

选项:

-d:自定义分隔符,默认制表符

-s:串行处理,非并行

8、tr工具:用于字符转换、替换、删除,主要用于删除文件中控制字符或进行字符转换

语法和选项:

  -d 删除字符串中所有符合要求的字符

  -s 删除所有重复出现的字符,只保留一个,即将重复出现字符串压缩为一个字符串

 tr '0-9' '$' < /etc/passwd   将文件输出给tr处理并将数字全部改为$,但原文件不变

tr -d ‘a-d’ < /etc/passwd  将文件输出给tr处理删除所有小写字母

原文地址:https://www.cnblogs.com/jdwy24/p/13050158.html