【Linux】文本处理、关键字截取

xiaoxiao2021-02-28  59

cut

cut命令可以将一行文字按照指定字符切分成多段并取出某一段,或者直接指定要取出的字符位置。 格式:

cut -d '指定字符' -f数字 //切分并取出指定列 cut -c 区间 //取出指定字符位置的字符串,区间用-表示,如2-4,8-,-9等

实例: 1 从登录信息中取出登录名那一列。

[root@localhost nta]# last | cut -d ' ' -f1 root root root root 。。。。。。

2 取出$PATH中的第8个字符后面的内容。

[root@localhost nta]# echo $PATH | cut -c 8- b64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

grep

grep命令用于从文档中找出我们需要的那一行来。 格式:

grep -acinv ‘搜索字符串’ filename

参数:

-a :将 binary 档案以 text 档案的方式搜寻数据 -c :计算找到 '搜寻字符串' 的次数 -i :忽略大小写的不同,所以大小写视为相同 -n :顺便输出行号 -v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行!

实例: 1 找出last中,有root的那些行。

[root@localhost nta]# last | grep root root pts/0 172.16.150.189 Thu Aug 31 14:01 still logged in root pts/2 172.16.150.199 Thu Aug 31 10:07 still logged in root pts/5 172.16.150.184 Thu Aug 31 09:32 - 09:40 (00:08) root pts/4 172.16.150.184 Thu Aug 31 09:32 - 09:35 (00:02) 。。。。。。

2 找出last中没有root的那些行,并输出行号。

wtmp begins Tue Jun 6 12:26:58 2017 [root@localhost nta]# last | grep -vn root 32:(unknown :0 :0 Wed Aug 30 15:31 still logged in 33:(unknown :0 :0 Wed Aug 30 15:26 - 15:31 (00:04) 55:(unknown :0 :0 Wed Aug 30 12:42 - 12:43 (00:00) 56:reboot system boot 3.10.0-327.el7.x Wed Aug 30 12:42 - 14:13 (1+01:31) 。。。。。。

sort

sort命令是将文字的每一行按照指定规则排序。

格式:

sort [-fbMnrtuk] filename

参数:

-f :忽略大小写的差异,例如 A 与 a 视为编码相同; -b :忽略最前面的空格符部分; -M :以月份的名字来排序,例如 JAN, DEC 等等的排序方法; -n :使用『纯数字』进行排序(预设是以文字型态来排序的); -r :反向排序; -u :就是 uniq ,相同的数据中,仅出现一行代表; -t :分隔符,预设是 tab 键; -k :以那个区间 (field) 来进行排序的意思,

实例: 1 将用户账号信息(/etc/passwd)进行排序(可以看到默认是以第一个字母按照字母表顺序排序的)。

[root@localhost nta]# cat /etc/passwd | sort abrt:x:173:173::/etc/abrt:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin bin:x:1:1:bin:/bin:/sbin/nologin chrony:x:987:984::/var/lib/chrony:/sbin/nologin colord:x:992:990:User for colord:/var/lib/colord:/sbin/nologin 。。。。

2 将用户账号信息按照用户标识(第三列,数字)进行排序。

[root@localhost nta]# cat /etc/passwd | sort -t ':' -k 3 -n root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync 。。。。。。

uniq uniq显示输入的内容,但每个重复的行只显示一次。

格式:

uniq [-ic]

参数:

-i :忽略大小写字符的不同; -c :进行计数

实例:

[root@localhost nta]# last | grep root | cut -d ' ' -f1 | uniq root [root@localhost nta]# last | grep root | cut -d ' ' -f1 | uniq -c 475 root

wc wc命令用于检索文档的字数、行数和字符数。

格式:

wc [-lwm]

参数:

-l :仅列出行; -w :仅列出多少字(英文单词); -m :多少字符;

实例: 检查$PATH中有多少字符。

[root@localhost nta]# echo $PATH | wc -m 82
转载请注明原文地址: https://www.6miu.com/read-36455.html

最新回复(0)