基础正则表达式(必威:grep),查看文本内容

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]... [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=STRING指定输出分隔符

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

[[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,则只输出一次排序结果

  -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 :把连续重复的字符以单独一个字符表示

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

[[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命令:查看文本内容

必威 1

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

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

[[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 [选项]... [文件]...

正则表达式

正则表达式是通过一些特殊字符的排列,用以查找、替换、删除一行或多行文字字符串
基础正则表达式(grep)

grep    基本正则表达式
功能:
    显示匹配信息所在行     
options:
-o     只显示匹配到的行
eg:
-v     只显示未匹配到的行
-e     或
eg:grep -e  “cat”  -e  “dog”  file1   显示含有cat或dog的行
-w    匹配整个单词(精确查找)
-c     统计匹配的行数
-n     显示匹配结果的行号
-q     静默模式,不显示匹配结果
-A n  同时显示匹配到的行与它的后n行
-B n  同时显示匹配到的行与它的前n行
-C n  同时显示匹配到的行与它的前后n行
-E     =egrep
-F     =fgrep
-i      忽略字符大小写
–color=auto

gerp
例:文件夹里有以下内容

必威 2

字符匹配:
. 匹配任意单个字符

例:

必威 3

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

例:

必威 4

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

例:

必威 5

[:alnum:] 字母和数字
例:

必威 6

[:alpha:] 代表任何英文大小写字符,亦即 A-Z, a-z
[:lower:] 小写字母 [:upper:] 大写字母
[:blank:] 空白字符(空格和制表符)
[:space:] 水平和垂直的空白字符(比[:blank:]包含的范围广)
[:cntrl:] 不可打印的控制字符(退格、删除、警铃...)
[:digit:] 十进制数字 [:xdigit:]十六进制数字
[:graph:] 可打印的非空白字符
[:print:] 可打印字符
[:punct:] 标点符号

匹配次数:用在要指定次数的字符后面,用于指定前面的字
符要出现的次数
.*匹配前面的字符任意次,包括0次
贪婪模式:尽可能长的匹配
例:

必威 7

.* 任意长度的任意字符
例:r中间任意长度任意字符

必威 8

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

必威 9

+ 匹配其前面的字符至少1次
例: "ro+t" 包括一次

必威 10

{n} 匹配前面的字符n次
例: ro{2}t 只能2次,3个都不行

必威 11

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

必威 12

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

必威 13

{n,} 匹配前面的字符至少n次
例:

必威 14

位置锚定:定位出现的位置
cat a1 内容为例:

必威 15

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

必威 16

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

必威 17

^PATTERN$ 用于模式匹配整行

^$ 空行
^[[:space:]]*$ 空白行
下面用nano a1 添加了空格

必威 18

例:删除空格

必威 19

< 或 b 词首锚定 ,用于单词模式的左侧
例:和匹配整个单词类似
> 或 b 词尾锚定;用于单词模式的右侧

<PATTERN> 匹配整个单词
例:图中 come可以在符号除去引号''下划线,第一个命令有个bcomes也有come,所以要锚定词首,词尾。

必威 20

         -E    显示行结束符

         -E    显示行结束符

文本处理工具

抽取文本的工具
文件内容:less和 cat
文件截取: head和tail
按列抽取: cut
按关键字抽取: grep
文件查看命令: cat, tac,rev

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

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

查看(cat、less、more、head、tail、cut、paste)

         -A    显示所以控制符

         -A    显示所以控制符

head

用法:head [选项]… [文件]…

head[OPTION]…[FILE]…
默认将每个指定文件的头10行显示到标准输出。如果指定了多于一个文件,在每一段输出前会给出文件名作为
文件头。如果不指定文件,或者文件为“-“,则从标准输入读取数据
-c  显示每个文件的前k字节内容;如果附加“-“参数,则除了每个文件的最后K字节数据外显示剩余全部内容
-n  显示每个文件的前k行内容;如果附加“-“参数,则除了每个文件的最后K 行外显示剩余全部内容
-q  –quiet,–silent 不显示包含给定文件名的文件头
-v  –verbose 总是显示包含给定文件名的文件头

必威 21

必威 22

         -b    非空行编号

         -b    非空行编号

tail

tail[OPTION]…[FILE]…

tail – 输出文件的末尾部分,默认在标准输出上显示每个文件的最后10行,如果多于一个文件会在每一段输出
前会给出文件名作为文件头,一个接一个地显示。如果不指定文件,或者文件为“-“,则从标准输入读取数据。
-c  –bytes=N 输出最后N个字节
-n  –lines=N 输出最后N行而非默认的最后10行
-q  –quiet –silent 从不输出给出文件名的首部
-v  –verbose 总是输出给出文件名的首部
-f  –follow[={name|descriptor}] 当文件增长时输出后续添加的数据,动态显示。跟踪显示文件新追加的
内容常用日志监控。

必威 23

必威 24

必威 25

拓展:与head相似,如果N(字节或者行数)的第一个字符为`+’,那么从每个文件的开头算起的第N项开始显示,否则,显示该文件的最后N项。

必威 26

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

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

cut

按列抽取文本

cut[OPTION]…[FILE]…
-d –DELIMITER:指明分隔符,默认为Tab,一般与-f 连用。
-f 选取第几列
n  指定某一列
n-m  指定n列到m列
n,n-m  混合指定
–output-delimiter 指定输出符

示例:截取用户名与UID且以“+”符号为分隔符。
cut -d: -f1,3 –output-delimiter=’+’ /etc/passwd

必威 27

-c [n-m]按字符切割 第n个字符到第m个字符
-b [n-m]按字节切割 第n个字节到第m个字节
示例:截取/etc/passwd文件的前四个字符。
cut -c 1-4 /etc/passwd

必威 28

[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
经典练习题:显示当前主机第一个网卡的IP地址

ifconfig |head -n 2| tail -n 1| tr -s ‘ ‘ : |cut -d: -f4
paste
将每个指定文件里的每一行整合到对应一行里写到标准输出,默认用制表符分隔。如果没有指定文件,或指定文件为”-“,程序将从标准输入读取数据。
paste[OPTION]…[FILE]…
-d分隔符:指定分隔符,默认用TAB
-s: 不使用平行的行目输出模式,而是每个文件占用一行
paste f1 f2
paste -s f1 f2

必威 29

more       分页显示

more       分页显示

wc

收集文本统计数据
wc命令的功能为统计指定文件中的字节数、单词数、行数并将统计结果显示输出
可以对文件或STDIN中的数据运行
-c –bytes 打印字节数-m –chars 打印字符数 -l –lines 打印行数 -L –max-line-length 打印最长行的长度-w –words 打印单词数

必威 30

         more [OPTIONS...] FILE...

         more [OPTIONS...] FILE...

sort

文本排序
把整理过的文本显示在STDOUT,不改变原始文件
sort [options] file
常用选项
sort

 -r 执行反方向(由上至下)整理
   -n 执行按数字大小整理
   -f 选项忽略(fold)字符串中的字符大小写
   -u 选项(独特,unique)删除输出中的重复行
   -t c 选项使用c做为字段界定符
   -k X 选项按照使用c字符分隔的X列来整理能够使用多次

示例:

cat /etc/passwd | sort
#排序默认以第一个数据排序,默认以字符串形式排序,以a开始升序排序,首字母相同则比较下一位的顺序。
cat /etc/passwd | sort -t: -k3
#/etc/passwd中的以“:”为间隔符,对其第三栏排序,默认以第一数据排序,相同的话比较下一位的顺序。
cat /etc/passwd | sort -nt: -k3
#/etc/passwd中的以“:”为间隔符,对其第三栏排序,按数字整体大小升序排列。
cat /etc/passwd | sort -rnt: -k3
#/etc/passwd中的以“:”为间隔符,对其第三栏排序,按数字整体大小以升序相反的方式降序排列。

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

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

uniq

uniq命令:从输入文件或者标准输入中删除前后相接的重复的行,注意:连续且完全相同方为重复
uniq[OPTION]…[FILE]…

-c  –count 显示每行重复出现的次数
-d  –repeated 仅显示重复过的行
-D  –all-repeated[=delimit-method 显示所有重复的行
-u  –unique 仅显示不曾重复的行
-f  –skip-fields=N   比较时跳过前N 列
-s, –skip-chars=N    比较时跳过前N 个字符
-I  –ignore-case     在比较的时候不区分大小写
-w  –check-chars=N   对每行第N 个字符以后的内容不作对照

常和sort命令一起配合使用:
sort test | uniq –c

必威 31

[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

接下来介绍比较实用的功能,需要diff与patch功能结合使用。

diff
比较两个文件之间的区别
命令:diff
patch
让用户利用设置修补文件的方式,修改,更新原始文件。
命令:patch

上面两条命令相结合可以做出大事——“打补丁”或“更新”
diff命令的输出被保存在一种叫做“补丁”的文件中
使用-u选项来输出“统一的(unified)”diff格式文
件,最适用于补丁文件。
patch复制在其它文件中进行的改变(注意:要谨慎使用)
适用-b选项来自动备份改变了的文件

示例:

必威 32

换个角度,你也可以理解为对文件进行更新。同时,不要担心旧版文件的丢失,每次更新都会产生后缀为“.orig”的文件,里面存储着你的旧版文件。

必威 33

head命令 : 

head命令 :

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

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

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

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

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

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

    -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  

tail命令:

tail命令:

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

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

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

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

   -c #   显示后#字节

   -c #   显示后#字节

   -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.

 cut命令:

 cut命令:

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

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

  -d  指明分隔符,默认tab

  -d  指明分隔符,默认tab

  -f  第# 个字段

  -f  第# 个字段

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

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

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

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

  混合使用:1-3,7

  混合使用:1-3,7

  -c 按字符切割

  -c 按字符切割

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

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

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

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

[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

本文由必威发布于必威-操作系统,转载请注明出处:基础正则表达式(必威:grep),查看文本内容

相关阅读