cat命令:查看文本内容

cat [选项]... [文件]...

-E    显示行结束符

-n    显示文本内容时显示行号

-A    显示所以控制符

-b    非空行编号

-s     压缩连续的空行成一行

  1. [root@bogon ~]# cat -n /etc/issue > test.txt    ##查看文件内容并显示行号,重定向到test.txt文件中
  2. [root@bogon ~]# cat test.txt
  3. \S
  4. Kernel \r on an \m
  1. [root@bogon ~]# cat > file <<EOF    ##创建file文件,输入内容以EOF结束
  2. > kernel \r on an \m
  3. > EOF
  4. [root@bogon ~]# cat file
  5. kernel \r on an \m

more       分页显示

more [OPTIONS...] FILE...

less  分页显示,是man命令使用的分页器

  1. [root@bogon ~]# less /etc/httpd.conf
  2. [root@bogon ~]# cat /etc/httpd.conf |more

head命令 : 

head [OPTION]... [FILE]...

    -n  显示文件前n行,默认显示前10行

    -c # 显示文件前#个字节内容

    -q  不显示包含给定文件名的文件头

  1. [root@bogon ~]# head - /etc/fstab     ##显示文件前5行
  2. #
  3. # /etc/fstab
  4. # Created by anaconda on Mon May ::
  5. #
  6.  
  7. [root@bogon ~]# head -q -n /etc/fstab /etc/issue    ##显示多个文件前5行,并且不显示文件头
  8.  
  9. #
  10. # /etc/fstab
  11. # Created by anaconda on Mon May ::
  12. #
  13. \S
  14. Kernel \r on an \m  

tail命令:

tail [OPTION]... [FILE]...

-f   实时查看,常用监控日志文件

   -c #   显示后#字节

   -n #  显示后#行,默认显示行10行

  1. [root@bogon ~]# tail - /etc/passwd    ##显示文件后2行
  2. sshd:x:::Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
  3. apache:x:::Apache:/usr/share/httpd:/sbin/nologin
  4. [root@bogon ~]# tail -f /var/log/messages    ##不停地去读最新的内容,有实时监视的效果,用Ctrl+c来终止
  1. May :: localhost systemd: Configuration file /usr/lib/systemd/system/wpa_supplicant.service is marked executable. Please remove executable permission bits. Proceeding anyway. May :: localhost yum[]: Installed: httpd-2.4.-.el7.centos..x86_64 May :: localhost systemd: Started Session of user root. May :: localhost systemd: Starting Session of user root. May :: localhost systemd-logind: Removed session . May :: localhost systemd: Started Session of user root. May :: localhost systemd-logind: New session of user root. May :: localhost systemd: Starting Session of user root. May :: localhost systemd: Started Session of user root. May :: localhost systemd: Starting Session of user root.

 cut命令:

cut [OPTION]... [FILE]...

  -d  指明分隔符,默认tab

  -f  第# 个字段

  #,#[,#] :离散的多个字段,例如1,3,6

  #-# :连续的多个字段,  例如1-6

  混合使用:1-3,7

  -c 按字符切割

  --output-delimiter=STRING指定输出分隔符

显示文件前10行,以“:”作为分隔符打印第1和第7个字段并分隔符换成空格输出:

  1. [root@bogon ~]# head /etc/passwd |cut -d ":" -f1, --output-delimiter=" "  ##查看系统用户使用的shell
  2. root /bin/bash      
  3. bin /sbin/nologin
  4. daemon /sbin/nologin
  5. adm /sbin/nologin
  6. lp /sbin/nologin
  7. sync /bin/sync
  8. shutdown /sbin/shutdown
  9. halt /sbin/halt
  10. mail /sbin/nologin
  11. operator /sbin/nologin
  1. [root@bogon ~]# ip addr |tail - |head - |cut -d "/" -f1 |cut -d " " -f6  ##获取ip地址
  2. 192.168.25.102

paste命令:

  paste [OPTION]... [FILE]...

  -d  分隔符: 指定分隔符,默认用TAB

  -s     所以行合并成一行显示

  1. [root@bogon ~]# paste /etc/resolv.conf /etc/issue    ##合并输出两个文件的内容
  2. # Generated by NetworkManager \S
  3. nameserver 202.106.46.151 Kernel \r on an \m
  4. nameserver 202.106.195.68
  5. [root@bogon ~]# paste -s /etc/issue    ##对输出的内容独立占一行
  6. \S Kernel \r on an \m

wc命令:统计文件内容

-l      统计行数

-w    统计单词个数

-c     统计字节数

-m    只计数字符总数

    -L  打印最长行的长度

  1. [root@bogon ~]# cat /etc/passwd |wc -l  ##统计文件的行数
  2.  
  3. [root@bogon ~]# echo "aaa bbb ccc" |wc -w    ##统计输出的单词数量
  4.  
  5. [root@bogon ~]# echo "abcdef" |wc -m    ##统计输出有多少个字节

文本排序:sort [options] file(s)

  -r   逆序排序

  -n   根据字符串数值进行比较

  -f   忽略字符大小写

  -u   去重。配合-c,严格校验排序;不配合-c,则只输出一次排序结果

  -t   使用指定的分隔符代替非空格到空格的转换

  -k 1 在位置1 开始一个key,在位置2 终止(默认为行尾)

  1. [root@bogon ~]# head /etc/passwd |sort -t ":" -k 3nr    ##以“:”分割对第三个字段数值进行倒序排列
  2. operator:x:::operator:/root:/sbin/nologin
  3. mail:x:::mail:/var/spool/mail:/sbin/nologin
  4. halt:x:::halt:/sbin:/sbin/halt
  5. shutdown:x:::shutdown:/sbin:/sbin/shutdown
  6. sync:x:::sync:/sbin:/bin/sync
  7. lp:x:::lp:/var/spool/lpd:/sbin/nologin
  8. adm:x:::adm:/var/adm:/sbin/nologin
  9. daemon:x:::daemon:/sbin:/sbin/nologin
  10. bin:x:::bin:/bin:/sbin/nologin
  11. root:x:::root:/root:/bin/bash
  12. [root@bogon ~]# cat /etc/passwd |sort -t':' -k -u    ##以“:”分割对第7个字段排序,去重
  13. root:x:::root:/root:/bin/bash
  14. sync:x:::sync:/sbin:/bin/sync
  15. halt:x:::halt:/sbin:/sbin/halt
  16. bin:x:::bin:/bin:/sbin/nologin
  17. shutdown:x:::shutdown:/sbin:/sbin/shutdown

uniq 命令:从输入中删除重复的前后相接的行

   uniq [OPTION]... [FILE]...

  -c:  显示每行重复出现的次数;

  -d:  仅显示重复过的行;

  -u:  仅显示唯一的行;

  -i:  比较时不区分大小写

  1. [root@bogon ~]# uniq -c ip.txt     ##显示重复行出现的次数,相邻行且完全一样为重复
  2. 101.200.78.99
  3. 103.41.52.94
  4. 106.185.47.161
  5. 101.200.78.99
  6. 113.240.250.155
  7. 13.0.782.215
  8. 185.130.5.231

文件比较:

diff命令:比较两个文件之间的区别

  -r  递归比较

  -u  输出“统一的(unified )

  patch 命令复制在其它文件中进行的改变(要谨慎使用!)

  -b   选项来自动备份改变了的文件

  1. [root@bogon ~]# diff file1.txt file2.txt
  2. 8c8      ##表示第8行有区别
  3. < 113.240.250.155
  4. ---
  5. > 133.240.250.155

替换和删除字符:

tr [OPTION]... SET1 [SET2]

-c 或——complerment :取字符集的补集

-d 或——delete :删除所有属于第一字符集的字符;

-s 或—squeeze-repeats :把连续重复的字符以单独一个字符表示

-t 或--truncate-set1 :先删除第一字符集较第二字符集多出的字符

  1. [root@bogon ~]# tr -s '\n' < file1.txt     ##删除空行
  2. 103.41.52.94
  3. 106.185.47.161
  4. \S
  5. Kernel \r on an \m
  6. 106.185.47.161
  7. [root@bogon ~]# tr A-Z a-z < file1.txt     ##把大写字母换成小写
  8. 103.41.52.94
  9. 106.185.47.161
  10. \s
  11. kernel \r on an \m
  12.  
  13. 106.185.47.161
grep命令:过滤文本内容

grep [OPTIONS] PATTERN [FILE...]

-i       查找时忽略大小写

-v     取反

    -n      显示匹配的行号

     -c     统计匹配的行数

    -o     仅显示匹配到的字符串;

    -q    静默模式,不输出任何信息

  -A #   after,  后#行 行

  -B #  before,  前#行 行

  -C #   context,  前后各#行 行

  -e   实现多个选项间的逻辑or 关系

  -w   整行匹配整个单词

  -E   使用扩展正则表达式

正则表达式:

.     匹配任意单个字符;

[]    匹配指定范围内的任意单个字符

[^]  匹配指定范围外的任意单个字符

*   匹配前面的字符任意次,包括0次 次贪婪模式:尽可能长的匹配

.*   任意长度的任意字符

\?   匹配其前面的字符0 或1次

\+   匹配其前面的字符至少1次

\{m\}   匹配前面的字符m次

\{m,n\}   匹配前面的字符至少m 次,至多n次

\{,n\}   匹配前面的字符至多n次 次

\{m,\}   匹配前面的字符至少m次

^   行首锚定,用于模式的最左侧

$   行尾锚定,用于模式的最右侧

^PATTERN$  用于模式匹配整行

^$   空行

^[[:space:]]*$   空白行

\< 或 或 \b   词首锚定,用于单词模式的左侧

\> 或 或 \b   词尾锚定;用于单词模式的右侧

\<PATTERN\>   匹配整个单词

\(\)    将一个或多个字符捆绑在一起,当作一个整体进行处理

[:alpha:] 所有字母,包括大、小写

[:alnum:] 所有字母和数字

[:upper:] 所有大写字母

[:lower:] 所有小写字母

[:digit:] 所有数字

[:punct:] 所有标点符号

[:space:] 空格和Tab

扩展正则表达式:

.    任意单个字符

[]    指定范围的字符

[^]    不在指定范围的字符

*   匹配前面字符任意次

?   0 或1次 次

+   1 次或多次

{m}   匹配m次

{m,n}   至少m ,至多n次

^  行首

$   行尾

\<, \b  语首

\>, \b    语尾

分组  ()

  后向引用:\1, \2, ...

或者:a|b

C|cat: C 或cat

(C|c)at:Cat 或cat

  1. [root@bogon ~]# grep '^\(root\|apache\)' test.txt   ##过滤以root或apache开头的行
  2. root:x:::root:/root:/bin/bash
  3. apache:x:::Apache:/usr/share/httpd:/sbin/nologin
  4. [root@bogon ~]# grep -R /sbin/nologin *     ##递归从所以文件中查询匹配的内容
  5. test.txt:bin:x:::bin:/bin:/sbin/nologin
  6. test.txt:daemon:x:::daemon:/sbin:/sbin/nologin
  1. [root@bogon ~]# ip addr |grep "dynamic" |tr -s " " |cut -d " " -f3 |cut -d "/" -f1  ##过滤ip地址
  2. 192.168.25.102
  3. [root@bogon ~]# ip addr |grep -E -o "([0-9]{1,3}[\.]){1,3}[0-9]{1,3}"
  4. 127.0.0.1
  5. 192.168.25.102
  6. 192.168.25.255
  1. [root@bogon ~]# df -Th |tr -s " " |sort -k 6nr |head -1  ##查出使用率的最大百分比值的分区
  2. /dev/sda1 xfs 497M 125M 373M 25% /boot
  1. [root@bogon ~]# cat /etc/passwd |sort -t ':' -k 3n |tail - |cut -d ":" -f1,,
  2. systemd-bus-proxy::/sbin/nologin      ##找出uid最大值的用户,并显示用户名、UID、及shell类型

linux文本处理工具及正则表达式的更多相关文章

  1. Linux文本处理工具

    Linux文本处理工具 Linux中熟练的使用文本处理工具非常的重要, 因为Linux在设计的时候是采用一切皆文件的哲学的, 甚至连计算机中的配置也都使用伪文件系统来表示, 要查询里面的内容就是对文件 ...

  2. Linux 文本处理工具grep,sed,awk

    grep.sed和awk都是文本处理工具,虽然都是文本处理工具单却都有各自的优缺点,一种文本处理命令是不能被另一个完全替换的,否则也不会出现三个文本处理命令了.只不过,相比较而言,sed和awk功能更 ...

  3. Linux文本编译工具VIM详解

    Linux文本编译工具VIM详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.VIM概述 1>.vim简介 >.vi: 全称Visual editor,即文本编辑 ...

  4. linux 文本分析工具---awk命令(7/1)

    awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各 ...

  5. linux文本处理工具篇

    一.常用简单工具 cat [OPTION]... [FILE]...  -E:显示行的结束符$ -n:对显示出的每一行进行编号. -A:显示所有控制符 -s:压缩连续空行为一行 more:分页查看文件 ...

  6. Linux文本查看工具

    文本查看工具 cat 特点: 不能用来看二进制文件 选项: -A: 显示不可见字符 cat支持标准输入: cat > aa.txt ---键盘作为标准输入,输出的结果重定向文件中去了 cat & ...

  7. Linux文本处理工具——Sed

    sed:数据流编辑器: awk:报告文本的生成器 sed 基本用法:(Stream EDitor) Stream 流 EDitor 编辑器 行编辑器 全屏编辑器:vi/vimsed:内存空间(模式空间 ...

  8. linux文本处理工具-1

    文件内容: cat ,more,less 文件截取:head,tail 按列抽取:cut 排序和统计:sort,wc ----------------------------------------- ...

  9. Linux 文本处理工具(grep sed awk )

    ^test: 以test开头; test$: 以test结尾: ^$: 表示空行,不是空格: . :代表且只代表任意一个字符(其他功能:当前目录,加载文件): \ : 代表转义字符,表示特殊字符: * ...

随机推荐

  1. JSON parse error: Cannot deserialize value of type `java.time.LocalDateTime` from String

    在使用Postman测试Spring Boot项目接口时,接口返回JSON parse error: Cannot deserialize value of type `java.time.Local ...

  2. —Libre#2009. 「SCOI2015」小凸玩密室

    #2009. 「SCOI2015」小凸玩密室 内存限制:256 MiB时间限制:1000 ms标准输入输出 题目类型:传统评测方式:文本比较 上传者: 匿名 提交提交记录统计讨论测试数据   题目描述 ...

  3. 洛谷P1831 杠杆数

    P1831 杠杆数 题目描述 如果把一个数的某一位当成支点,且左边的数字到这个点的力矩和等于右边的数字到这个点的力矩和,那么这个数就可以被叫成杠杆数. 比如4139就是杠杆数,把3当成支点,我们有这样 ...

  4. 程序员收藏必看系列:深度解析MySQL优化(二)

    程序员收藏必看系列:深度解析MySQL优化(一) 性能优化建议 下面会从3个不同方面给出一些优化建议.但请等等,还有一句忠告要先送给你:不要听信你看到的关于优化的“绝对真理”,包括本文所讨论的内容,而 ...

  5. C 语言实例 - 循环输出26个字母

    C 语言实例 - 循环输出26个字母 循环输出 个字母. 实例 #include <stdio.h> int main() { char c; for(c = 'A'; c <= ' ...

  6. 黑马Spring学习 AOP XML和注解配置 5种通知 切点切面通知织入

    业务类 package cn.itcast.aop; import org.aspectj.lang.JoinPoint; import org.aspectj.lang.ProceedingJoin ...

  7. 【手撸一个ORM】第五步、Expression(表达式目录树)转换为Where子句

    说明 在SQL中,查询.修改比较常用到WHERE子句,在这里根据使用场景不同,定义了两个类,一个用于查询,一个用于修改(插入)操作.原因是: 查询操作支持一级导航属性查询,如student.Schoo ...

  8. NET Core 2.0使用Cookie认证实现SSO单点登录

    NET Core 2.0使用Cookie认证实现SSO单点登录 之前写了一个使用ASP.NET MVC实现SSO登录的Demo,https://github.com/bidianqing/SSO.Sa ...

  9. 067 Add Binary 二进制求和

    给定两个二进制字符串,返回他们的和(用二进制表示).案例:a = "11"b = "1"返回 "100" .详见:https://leetc ...

  10. C - AtCoDeerくんと選挙速報 / AtCoDeer and Election Report

    ceil有毒啊..用ceil一直错. 思路就是模拟吧,设当前的答案是ansx和ansy. 如果比例是小于ansx的,那么就要乘以一个倍数k1,使得a * k1 >= ansx的. 所以就用cei ...