linux文本处理工科具及正则表明式,linux文本处理工科具及正则表明式集锦

by admin on 2019年3月26日

cat命令:查看文本内容

linux文本处理工科具及正则表达式,linux正则表明式

cat命令:查看文本内容

         cat [选项]… [文件]…

         -E    显示行终止符

         -n    突显文本内容时显得行号

         -A    呈现所以控制符

         -b    非空行编号

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

[[email protected] ~]# cat -n /etc/issue > test.txt    ##查看文件内容并显示行号,重定向到test.txt文件中
[[email protected] ~]# cat test.txt 
     1    \S
     2    Kernel \r on an \m
     3    

[[email protected] ~]# cat > file <<EOF    ##创建file文件,输入内容以EOF结束
> kernel \r on an \m
> EOF
[[email protected] ~]# cat file 
kernel \r on an \m

more       分页展现

         more [OPTIONS…] FILE…

less  分页呈现,是man命令使用的分页器

[[email protected] ~]# less /etc/httpd.conf 
[[email protected] ~]# cat /etc/httpd.conf |more

head命令 : 

         head [OPTION]… [FILE]…

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

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

    -q  不展现包蕴给定文件名的文书头

[[email protected] ~]# head -5 /etc/fstab     ##显示文件前5行
#
# /etc/fstab
# Created by anaconda on Mon May  1 04:49:06 2017
#

[[email protected] ~]# head -q -n 5 /etc/fstab /etc/issue    ##显示多个文件前5行,并且不显示文件头

#
# /etc/fstab
# Created by anaconda on Mon May  1 04:49:06 2017
#
\S
Kernel \r on an \m  

tail命令:

tail [OPTION]… [linux文本处理工科具及正则表明式,linux文本处理工科具及正则表明式集锦。FILE]…

         -f   实时翻看,常用监察和控制日志文件

   -c #   显示后#字节

   -n #  显示后#行,暗中同意突显行10行

[[email protected] ~]# tail -2 /etc/passwd    ##显示文件后2行
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
[[email protected] ~]# tail -f /var/log/messages    ##不停地去读最新的内容,有实时监视的效果,用Ctrl+c来终止

May 2 02:46:26 localhost systemd: Configuration file /usr/lib/systemd/system/wpa_supplicant.service is marked executable. Please remove executable permission bits. Proceeding anyway. May 2 02:46:26 localhost yum[16325]: Installed: httpd-2.4.6-45.el7.centos.4.x86_64 May 2 03:01:01 localhost systemd: Started Session 10 of user root. May 2 03:01:01 localhost systemd: Starting Session 10 of user root. May 2 03:45:49 localhost systemd-logind: Removed session 4. May 2 03:46:20 localhost systemd: Started Session 11 of user root. May 2 03:46:20 localhost systemd-logind: New session 11 of user root. May 2 03:46:20 localhost systemd: Starting Session 11 of user root. May 2 04:01:01 localhost systemd: Started Session 12 of user root. May 2 04:01:01 localhost systemd: Starting Session 12 of user root.

 cut命令:

cut [OPTION]… [FILE]…

  -d  指明分隔符,暗中认可tab

  -f  第# 个字段

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

  #-# :两次三番的多少个字段,  例如1-6

  混合使用:1-3,7

  -c 按字符切割

  –output-delimiter=ST昂CoraING钦赐输出分隔符

 突显文件前10行,以“:”作为分隔符打字与印刷第叁和第多少个字段并分隔符换到空格输出:

[[email protected] ~]# head /etc/passwd |cut -d ":" -f1,7 --output-delimiter="   "  ##查看系统用户使用的shell
root   /bin/bash      
bin   /sbin/nologin
daemon   /sbin/nologin
adm   /sbin/nologin
lp   /sbin/nologin
sync   /bin/sync
shutdown   /sbin/shutdown
halt   /sbin/halt
mail   /sbin/nologin
operator   /sbin/nologin

[[email protected] ~]# ip addr |tail -4 |head -1 |cut -d "/" -f1 |cut -d " " -f6  ##获取ip地址
192.168.25.102

paste命令:

  paste [OPTION]… [FILE]…

  -d  分隔符: 钦赐分隔符,暗中认可用TAB

  -s     所以行统十分之一一行突显

[[email protected] ~]# paste /etc/resolv.conf /etc/issue    ##合并输出两个文件的内容
# Generated by NetworkManager    \S
nameserver 202.106.46.151    Kernel \r on an \m
nameserver 202.106.195.68    
[[email protected] ~]# paste -s /etc/issue    ##对输出的内容独立占一行
\S    Kernel \r on an \m    

wc命令:总计文件内容

         -l      总括行数

         -w    总括单词个数

         -c     总结字节数

         -m    只计数字符总数

     -L  打字与印刷最长行的长短

[[email protected] ~]# cat /etc/passwd |wc -l  ##统计文件的行数
22
[[email protected] ~]# echo "aaa bbb ccc" |wc -w    ##统计输出的单词数量
3
[[email protected] ~]# echo "abcdef" |wc -m    ##统计输出有多少个字节
7

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

  -r   逆序排序

  -n   依据字符串数值实行比较

  -f   忽略字符大小写

  -u   去重。协作-c,严厉校验排序;不合营-c,则只输出2回排序结果

  -t   使用钦命的相间符代替非空格到空格的变换

  -k 1 在岗位1 启幕一个key,在义务2 悬停(暗许为行尾)

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

uniq 命令:从输入中去除重复的左右持续的行

   uniq [OPTION]… [FILE]…

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

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

  -u:  仅展现唯一的行;

  -i:  比较时不区分轻重缓急写

[[email protected] ~]# uniq -c ip.txt     ##显示重复行出现的次数,相邻行且完全一样为重复
      3 101.200.78.99
      1 103.41.52.94
      2 106.185.47.161
      1 101.200.78.99
      2 113.240.250.155
      1 13.0.782.215
      1 185.130.5.231

文本相比:

diff命令:比较几个公文之间的界别

  -r  递归相比较

  -u  输出“统一的(unified )

  patch 命令复制在别的文件中开始展览的改变(要严酷采取!)

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

[[email protected] ~]# diff file1.txt file2.txt 
8c8      ##表示第8行有区别
< 113.240.250.155
---
> 133.240.250.155

轮换和删除字符:

         tr [OPTION]… SET1 [SET2]

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

                   -d 或——delete :删除全部属于第叁字符集的字符;

                   -s 或—squeeze-repeats
:把再而三重复的字符以单独1个字符表示

                   -t 或–truncate-set1
:先删除第③字符集较第3字符集多出的字符

[[email protected] ~]# tr -s '\n'  < file1.txt     ##删除空行
103.41.52.94
106.185.47.161
\S
Kernel \r on an \m
106.185.47.161
[[email protected] ~]# tr  A-Z a-z < file1.txt     ##把大写字母换成小写
103.41.52.94
106.185.47.161
\s
kernel \r on an \m

106.185.47.161

cat命令:查看文本内容

cat命令:查看文本内容

        
cat [选项]… [文件]…

grep命令:过滤文本内容

         grep [OPTIONS] PATTERN [linux文本处理工科具及正则表明式,linux文本处理工科具及正则表明式集锦。FILE…]

         -i       查找时忽略大小写

         -v     取反

    -n      彰显匹配的行号

     -c     总括匹配的行数

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

    -q    静默形式,不出口任何音信

  -A #   after,  后#行 行

  -B #  before,  前#行 行

  -C #   context,  前后各#行 行

  -e   落成八个选项间的逻辑or 关系

  -w   整行匹配整个单词

  -E   使用扩大正则表达式

正则表明式:

.     匹配任意单个字符;

[]    匹配钦赐范围内的随机单个字符

[^]  匹配钦命范围外的肆意单个字符

*   匹配后面包车型客车字符任意次,蕴涵0次 次贪婪情势:尽恐怕长的杰出

.*   任意长度的即兴字符

\?   匹配其眼下的字符0 或2遍 

\+   匹配其前边的字符至少3次

\{m\}   匹配前面包车型客车字符m次 

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

\{,n\}   匹配后边的字符至多n次 次

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

^   行首锚定,用于格局的最左侧

$   行尾锚定,用于形式的最右面

^PATTEGL450N$  用来形式匹配整行

^$   空行

^[[: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

[[email protected] ~]# grep '^\(root\|apache\)' test.txt   ##过滤以root或apache开头的行
root:x:0:0:root:/root:/bin/bash
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
[[email protected] ~]# grep -R /sbin/nologin *     ##递归从所以文件中查询匹配的内容
test.txt:bin:x:1:1:bin:/bin:/sbin/nologin
test.txt:daemon:x:2:2:daemon:/sbin:/sbin/nologin

[[email protected] ~]# ip addr |grep "dynamic" |tr -s " " |cut -d " " -f3 |cut -d "/" -f1  ##过滤ip地址
192.168.25.102
[[email protected] ~]# ip addr |grep -E -o "([0-9]{1,3}[\.]){1,3}[0-9]{1,3}"
127.0.0.1
192.168.25.102
192.168.25.255

[[email protected] ~]# df -Th |tr -s " " |sort -k 6nr |head -1  ##查出使用率的最大百分比值的分区
/dev/sda1 xfs 497M 125M 373M 25% /boot

[[email protected] ~]# cat /etc/passwd  |sort -t ':' -k 3n |tail -1 |cut -d ":" -f1,3,7
systemd-bus-proxy:999:/sbin/nologin      ##找出uid最大值的用户,并显示用户名、UID、及shell类型

 

cat命令:查看文本内容 cat [选项]… [文件]… -E 展现行终止符 -n
显示文本内容时展现行号…

        
cat [选项]… [文件]…

         cat [选项]… [文件]…

        
-E    显示行终止符

        
-E    显示行终止符

         -E    展现行终止符

        
-n    显示文本内容时显示行反革命号

        
-n    呈现文本内容时体现行号

         -n    展现文本内容时显示行反革命号

        
-A    展现所以控制符

        
-A    显示所以控制符

         -A    呈现所以控制符

        
-b    非空行编号

        
-b    非空行编号

         -b    非空行编号

        
-s     压缩接二连三的空行成一行

        
-s     压缩再三再四的空行成一行

         -s     压缩一而再的空行成一行

[root@bogon ~]# cat -n /etc/issue > test.txt    ##查看文件内容并显示行号,重定向到test.txt文件中
[root@bogon ~]# cat test.txt 
     1    \S
     2    Kernel \r on an \m
     3    

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

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

more       分页呈现

more       分页彰显

more       分页显示

         more [OPTIONS…] FILE…

         more [OPTIONS…] FILE…

         more [OPTIONS…] FILE…

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

less  分页展现,是man命令使用的分页器

less 
分页展现,是man命令使用的分页器

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

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

head命令 : 

head命令 : 

head命令 :

        
head [OPTION]… [FILE]…

        
head [OPTION]… [FILE]…

         head [OPTION]… [FILE]…

    -n  展现文件前n行,默许显示前10行

    -n  彰显文件前n行,暗许呈现前10行

    -n  展现文件前n行,暗中认可展现前10行

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

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

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

    -q  不呈现包蕴给定文件名的公文头

    -q  不显得包括给定文件名的文本头

    -q  不显得包罗给定文件名的文书头

[root@bogon ~]# head -5 /etc/fstab     ##显示文件前5行
#
# /etc/fstab
# Created by anaconda on Mon May  1 04:49:06 2017
#

[root@bogon ~]# head -q -n 5 /etc/fstab /etc/issue    ##显示多个文件前5行,并且不显示文件头

#
# /etc/fstab
# Created by anaconda on Mon May  1 04:49:06 2017
#
\S
Kernel \r on an \m  
[root@bogon ~]# head -5 /etc/fstab     ##显示文件前5行
#
# /etc/fstab
# Created by anaconda on Mon May  1 04:49:06 2017
#

[root@bogon ~]# head -q -n 5 /etc/fstab /etc/issue    ##显示多个文件前5行,并且不显示文件头

#
# /etc/fstab
# Created by anaconda on Mon May  1 04:49:06 2017
#
\S
Kernel \r on an \m  
[root@bogon ~]# head -5 /etc/fstab     ##显示文件前5行
#
# /etc/fstab
# Created by anaconda on Mon May 1 04:49:06 2017
#
[root@bogon ~]# head -q -n 5 /etc/fstab /etc/issue    ##显示多个文件前5行,并且不显示文件头
#
# /etc/fstab
# Created by anaconda on Mon May 1 04:49:06 2017
#
\S
Kernel \r on an \m  

tail命令:

tail命令:

tail命令:

tail
[OPTION]… [FILE]…

tail
[OPTION]… [FILE]…

tail [OPTION]… [FILE]…

        
-f   实时翻看,常用监察和控制日志文件

        
-f   实时翻看,常用监察和控制日志文件

         -f   实时翻看,常用监察和控制日志文件

   -c
#   显示后#字节

   -c
#   显示后#字节

   -c #   显示后#字节

   -n
#  显示后#行,暗中同意彰显行10行

   -n
#  显示后#行,暗中认可展现行10行

   -n #  显示后#行,暗中同意展现行10行

[root@bogon ~]# tail -2 /etc/passwd    ##显示文件后2行
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
[root@bogon ~]# tail -f /var/log/messages    ##不停地去读最新的内容,有实时监视的效果,用Ctrl+c来终止

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

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

 cut命令:

 cut命令:

 cut命令:

cut
[OPTION]… [FILE]…

cut
[OPTION]… [FILE]…

cut [OPTION]… [FILE]…

  -d 
指明分隔符,暗许tab

  -d 
指明分隔符,暗许tab

  -d  指明分隔符,暗中同意tab

  -f
 第# 个字段

  -f
 第# 个字段

  -f  第# 个字段

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

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

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

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

  #-#
:一而再的五个字段,  例如1-6

  #-# :两次三番的多少个字段,  例如1-6

  混合使用:1-3,7

  混合使用:1-3,7

  混合使用:1-3,7

  -c
按字符切割

  -c
按字符切割

  -c 按字符切割

  –output-delimiter=STCR-VING钦定输出分隔符

  –output-delimiter=STLacrosseING钦定输出分隔符

  –output-delimiter=STRubiconING内定输出分隔符

 彰显文件前10行,以“:”作为分隔符打印第②和第七个字段并分隔符换到空格输出:

 展现文件前10行,以“:”作为分隔符打字与印刷第壹和第八个字段并分隔符换来空格输出:

 彰显文件前10行,以“:”作为分隔符打字与印刷第③和第10个字段并分隔符换到空格输出:

[root@bogon ~]# head /etc/passwd |cut -d ":" -f1,7 --output-delimiter="   "  ##查看系统用户使用的shell
root   /bin/bash      
bin   /sbin/nologin
daemon   /sbin/nologin
adm   /sbin/nologin
lp   /sbin/nologin
sync   /bin/sync
shutdown   /sbin/shutdown
halt   /sbin/halt
mail   /sbin/nologin
operator   /sbin/nologin

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

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

paste命令:

paste命令:

paste命令:

  paste
[OPTION]… [FILE]…

  paste
[OPTION]… [FILE]…

  paste [OPTION]… [FILE]…

  -d 
分隔符: 内定分隔符,暗许用TAB

  -d 
分隔符: 钦命分隔符,私下认可用TAB

  -d  分隔符: 钦点分隔符,私下认可用TAB

  -s
    所以行统百分之十一行展现

  -s
    所以行统10%一行呈现

  -s     所以行统10%一行显示

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

wc命令:总计文件内容

wc命令:总结文件内容

wc命令:总结文件内容

        
-l      总结行数

        
-l      计算行数

         -l      总计行数

        
-w    计算单词个数

        
-w    总计单词个数

         -w    计算单词个数

        
-c     总计字节数

        
-c     总结字节数

         -c     计算字节数

        
-m    只计数字符总数

        
-m    只计数字符总数

         -m    只计数字符总数

   
 -L  打字与印刷最长行的尺寸

   
 -L  打字与印刷最长行的长度

     -L  打字与印刷最长行的长短

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

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

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

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

  -r   逆序排序

  -r   逆序排序

  -r   逆序排序

  -n   依据字符串数值举办相比较

  -n   遵照字符串数值实行相比较

  -n   依据字符串数值实行比较

  -f   忽略字符大小写

  -f   忽略字符大小写

  -f   忽略字符大小写

  -u   去重。合作-c,严苛校验排序;不合营-c,则只输出一回排序结果

  -u   去重。协作-c,严俊校验排序;分裂盟-c,则只输出一遍排序结果

  -u   去重。合作-c,严厉校验排序;不包容-c,则只输出壹回排序结果

  -t   使用钦命的相间符代替非空格到空格的转移

  -t   使用钦命的相间符代替非空格到空格的变换

  -t   使用钦命的相间符代替非空格到空格的变换

  -k
1 在职责1 始发1个key,在职责2 结束(暗许为行尾)

  -k
1 在岗位1 初始一个key,在职分2 悬停(私下认可为行尾)

  -k 1 在岗位1 开端一个key,在职分2 悬停(默许为行尾)

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

uniq 命令:从输入中删除重复的内外持续的行

uniq 命令:从输入中除去重复的光景持续的行

uniq
命令:从输入中剔除重复的上下持续的行

   uniq
[OPTION]… [FILE]…

   uniq
[OPTION]… [FILE]…

   uniq [OPTION]… [FILE]…

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

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

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

  -d: 
仅展现重复过的行;

  -d: 
仅展现重复过的行;

  -d:  仅体现重复过的行;

  -u:
 仅呈现唯一的行;

  -u:
 仅呈现唯一的行;

  -u:  仅体现唯一的行;

  -i:
 相比时不区分轻重缓急写

  -i:
 相比较时不区分轻重缓急写

  -i:  比较时不区分轻重缓急写

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

文件相比:

文件相比较:

文本相比较:

diff命令:相比较四个文件之间的区分

diff命令:相比较四个文件之间的分别

diff命令:相比较三个公文之间的区分

  -r  递归相比

  -r  递归相比较

  -r  递归比较

  -u
 输出“统一的(unified )

  -u
 输出“统一的(unified )

  -u  输出“统一的(unified )

  patch
命令复制在其它文件中进行的更改(要严峻接纳!)

  patch
命令复制在别的文件中开展的变动(要小心采取!)

  patch 命令复制在其余文件中开始展览的改观(要如临深渊运用!)

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

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

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

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

轮换和删除字符:

轮换和删除字符:

轮换和删除字符:

        
tr [OPTION]… SET1 [SET2]

        
tr [OPTION]… SET1 [SET2]

         tr [OPTION]… SET1 [SET2]

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

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

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

                  
-d 或——delete :删除全部属于第2字符集的字符;

                  
-d 或——delete :删除全体属于第壹字符集的字符;

                   -d 或——delete :删除全体属于第叁字符集的字符;

                  
-s 或—squeeze-repeats :把再三再四重复的字符以独立1个字符表示

                  
-s 或—squeeze-repeats :把再三再四重复的字符以单独多个字符表示

                   -s 或—squeeze-repeats
:把再三再四重复的字符以独立贰个字符表示

                  
-t 或–truncate-set1 :先删除第叁字符集较第2字符集多出的字符

                  
-t 或–truncate-set1 :先删除第①字符集较第③字符集多出的字符

                   -t 或–truncate-set1
:先删除第贰字符集较第2字符集多出的字符

[root@bogon ~]# tr -s '\n'  < file1.txt     ##删除空行
103.41.52.94
106.185.47.161
\S
Kernel \r on an \m
106.185.47.161
[root@bogon ~]# tr  A-Z a-z < file1.txt     ##把大写字母换成小写
103.41.52.94
106.185.47.161
\s
kernel \r on an \m

106.185.47.161
[root@bogon ~]# tr -s '\n'  < file1.txt     ##删除空行
103.41.52.94
106.185.47.161
\S
Kernel \r on an \m
106.185.47.161
[root@bogon ~]# tr  A-Z a-z < file1.txt     ##把大写字母换成小写
103.41.52.94
106.185.47.161
\s
kernel \r on an \m

106.185.47.161
[root@bogon ~]# tr -s '\n' < file1.txt     ##删除空行
103.41.52.94
106.185.47.161
\S
Kernel \r on an \m
106.185.47.161
[root@bogon ~]# tr A-Z a-z < file1.txt     ##把大写字母换成小写
103.41.52.94
106.185.47.161
\s
kernel \r on an \m
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次 次贪婪方式:尽也许长的匹配

.*home88一必发,   任意长度的任性字符

\?   匹配其前边的字符0 或二回 

\+   匹配其日前的字符至少三次

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

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

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

\{m,\}   匹配后面包车型大巴字符至少m次

^   行首锚定,用于情势的最左侧

$   行尾锚定,用于情势的最右边

^PATTECR-VN$  用来形式匹配整行

^$   空行

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

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

\> 或 或 \b   词尾锚定;用于单词格局的右手

\<PATTERN\>   匹配整个单词

\(\)    将一个或五个字符捆绑在共同,当作1个完整实行处理

[: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

[root@bogon ~]# grep '^\(root\|apache\)' test.txt   ##过滤以root或apache开头的行
root:x:0:0:root:/root:/bin/bash
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
[root@bogon ~]# grep -R /sbin/nologin *     ##递归从所以文件中查询匹配的内容
test.txt:bin:x:1:1:bin:/bin:/sbin/nologin
test.txt:daemon:x:2:2:daemon:/sbin:/sbin/nologin

[root@bogon ~]# ip addr |grep "dynamic" |tr -s " " |cut -d " " -f3 |cut -d "/" -f1  ##过滤ip地址
192.168.25.102
[root@bogon ~]# ip addr |grep -E -o "([0-9]{1,3}[\.]){1,3}[0-9]{1,3}"
127.0.0.1
192.168.25.102
192.168.25.255

[root@bogon ~]# df -Th |tr -s " " |sort -k 6nr |head -1  ##查出使用率的最大百分比值的分区
/dev/sda1 xfs 497M 125M 373M 25% /boot

[root@bogon ~]# cat /etc/passwd  |sort -t ':' -k 3n |tail -1 |cut -d ":" -f1,3,7
systemd-bus-proxy:999:/sbin/nologin      ##找出uid最大值的用户,并显示用户名、UID、及shell类型

 

grep命令:过滤文本内容

        
grep [OPTIONS] PATTERN [FILE…]

        
-i       查找时忽略大小写

        
-v     取反

    -n
     展现匹配的行号

  
  -c     计算匹配的行数

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

  
 -q    静默情势,不出口任何音讯

  -A
#   after,  后#行 行

  -B
#  before,  前#行 行

  -C
#   context,  前后各#行 行

  -e
  完毕多少个挑选间的逻辑or 关系

  -w
  整行匹配整个单词

  -E
  使用扩张正则表明式

正则表达式:

.     匹配任意单个字符;

[]    匹配钦赐范围内的随意单个字符

[^]  匹配钦命范围外的自由单个字符

*   匹配前边的字符任意次,包罗0次 次贪婪格局:尽或者长的杰出

.*   任意长度的妄动字符

\?   匹配其最近的字符0 或2回 

\+   匹配其前方的字符至少壹遍

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

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

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

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

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

$   行尾锚定,用于情势的最右侧

^PATTE卡宴N$  用来情势匹配整行

^$   空行

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

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

\> 或 或 \b   词尾锚定;用于单词情势的右侧

\<PATTERN\>   匹配整个单词

\(\)    将1个或四个字符捆绑在一道,当作1个全部举行处理

[: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

[root@bogon ~]# grep '^\(root\|apache\)' test.txt   ##过滤以root或apache开头的行
root:x:0:0:root:/root:/bin/bash
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
[root@bogon ~]# grep -R /sbin/nologin *     ##递归从所以文件中查询匹配的内容
test.txt:bin:x:1:1:bin:/bin:/sbin/nologin
test.txt:daemon:x:2:2:daemon:/sbin:/sbin/nologin

[root@bogon ~]# ip addr |grep "dynamic" |tr -s " " |cut -d " " -f3 |cut -d "/" -f1  ##过滤ip地址
192.168.25.102
[root@bogon ~]# ip addr |grep -E -o "([0-9]{1,3}[\.]){1,3}[0-9]{1,3}"
127.0.0.1
192.168.25.102
192.168.25.255

[root@bogon ~]# df -Th |tr -s " " |sort -k 6nr |head -1  ##查出使用率的最大百分比值的分区
/dev/sda1 xfs 497M 125M 373M 25% /boot

[root@bogon ~]# cat /etc/passwd  |sort -t ':' -k 3n |tail -1 |cut -d ":" -f1,3,7
systemd-bus-proxy:999:/sbin/nologin      ##找出uid最大值的用户,并显示用户名、UID、及shell类型

 

grep命令:过滤文本内容

         grep [OPTIONS] PATTERN [FILE…]

         -i       查找时忽略大小写

         -v     取反

    -n      展现匹配的行号

     -c     总括匹配的行数

    -o     仅体现匹配到的字符串;

    -q    静默形式,不出口任何消息

  -A #   after,  后#行 行

  -B #  before,  前#行 行

  -C #   context,  前后各#行 行

  -e   落成四个选项间的逻辑or 关系

  -w   整行匹配整个单词

  -E   使用扩充正则表达式

正则表明式:

.     匹配任意单个字符;

[]    匹配内定范围内的人身自由单个字符

[^]  匹配钦赐范围外的随机单个字符

*   匹配后边的字符任意次,蕴涵0次 次贪婪模式:尽大概长的协作

.*   任意长度的自由字符

\?   匹配其前方的字符0 或叁遍

\+   匹配其方今的字符至少3次

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

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

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

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

^   行首锚定,用于方式的最左边

$   行尾锚定,用于情势的最右面

^PATTE途观N$  用来形式匹配整行

^$   空行

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

\< 或 或 \b   词首锚定,用于单词方式的左手

\> 或 或 \b   词尾锚定;用于单词形式的左侧

\<PATTERN\>   匹配整个单词

\(\)    将1个或七个字符捆绑在联合,当作三个总体进行处理

[: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

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

以上所述是小编给我们介绍的linux文本处理工科具及正则表达式集锦,希望对我们有着补助,借使大家有别的疑问请给作者留言,作者会及时还原我们的。在此也格外谢谢我们对台本之家网站的协理!

您可能感兴趣的稿子:

  • linux
    grep正则表明式与grep用法详解
  • linux shell
    正则表明式(BREs,EREs,PREs)差距相比
  • linux 正则表明式深度解析
  • Linux 正则表明式详解
  • Linux中文本甩卖工具之sort命令详解
  • Linux汉语本甩卖工具之cut命令详解
  • 详解正则表明式及Linux三大文本处理工科具

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图