查看,统计、正则表达式——Linux基本命令(9)

1.文件查看

(1)正向查看

cat

cat -v 显示非打印字符

-E 显示$

-T 显示TAB

-n 显示行号(与nl作用类似)

-s 将连续的重复的空行变成一行(与tr -s作用类似,将多个重复的变成一个,如图将多个换行符变成了一个)

-A = -vET都显示

(2)整个文件反向查看

tac 反向输出 将文件倒过来输出

(3)一行反向查看

rev 将每一行反向输出


2.分页查看文件内容

more: 分页查看文件

more [OPTIONS...] FILE...

-d: 显示翻页及退出提示

less:一页一页地查看文件或STDIN输出

查看时有用的命令包括:

/文本 搜索 文本

n/N 跳到下一个 或 上一个匹配

less命令是man命令使用的分页器


3.显示文本前或后行的内容

head

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

-n #: 指定获取前#行

-#: 指定行数

-c #: 指定获取前#字节

tail

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

-c #: 指定获取后#字节

-n #: 指定获取后#行

-#

-f: 跟踪动态的显示文件新追加的内容,常用日志监控


4. 按列抽取文本cut

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

-d DELIMITER: 指明分隔符,默认tab

-f FILEDS:

#: 第#个字段

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

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

混合使用:1-3,7

如图,查看/etc/passwd文件(图片只截取了部分内容)

使用cut,以:为分隔符,截取第1个字段(就是用户名那一列)

也可以截取第1,3字段(就是用户名和UID)

同样的,可以截取前三位

-c 按字符切割

如图,将每行第二个字符切割出来

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

如图,将分隔符改成了“!”


5.paste

paste 合并两个文件同行号的列到一行

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

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

-s : 所有行合成一行显示

paste f1 f2 [f3]

paste -s f1 f2 将文件内容变成一行显示


6.文本数据统计WC

wc: word count

wc 行数 单词数 字节(换行符也算一个字节)

wc -m 字符数

-c 字节 (一个字母一个字节,一个汉字三个字节)

-l行数

-w 单词数


7.文本排序

sort 

(正常默认按照第一个数字的大小排序)

-n 执行按数字大小整理

 -r  执行反方向(由上至下)整理

-f  选项忽略(fold)字符串中的字符大小写

-u  选项(独特,unique)删除输出中的重复行

-t c 选项使用c做为字段界定符

-k X 选项按照使用c字符分隔的X列来整理 能够使用多次


8.uniq

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

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

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


   -d: 仅显示重复过的行


   -u: 仅显示不曾重复的行

(uniq命令常与sort命令一起配合使用。要想去除非连续的行,就可以先用sort排序)


9.比较文件

比较两个文件之间的区别,可以用diff

可以使用diff -u生成补丁(用于软件升级之类的):

diff -u f1 f2 > diff.log  生成补丁

mv f2 f2.rm        相当于删除了文件

patch -b f1 diff.log    通过补丁还原文件

注:还原之后新生成的文件依然叫f1(其实就是f2),原来的旧的f1会自动命名为f1.orig

mv f1 f2          还原原始的新文件名

mv f1.orig f1         还原原始的旧文件名

diff f2 f2.rm         比较还原回来的新文件与被删除的文件,发现没有区别


10.文本搜索工具

grep: Global search REgulare xpression and Print out the line

作用:文本搜索工具,根据用户指定的“模式”对目标文本逐行进行匹配检查,打印匹配到的行

模式:由正则表达式字符及文本字符所编写的过滤条件

--color=auto 将匹配的结果着色显示

在centos6中匹配时是没有颜色的,需要加上--color=auto才能将匹配结果着色,但是在centos7中默认就是着色的,因为alise里已经有设置好了别名。

-v 反向匹配  (如grep -v root/etc/passwd将显示所有不带有root的结果)

-i 忽略大小写


  -n 显示的结果前增加行号

-c 仅显示匹配到结果的行数

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

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

或者 &>/dev/null

-A# 显示关键字行及向后#行

-B# 显示关键字行及向前#行

-C# 显示关键字向前#行,当前行,及向后#行

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

用法:grep –e‘cat ’ -e ‘dog’ file

         -w  匹配整个单词

-E 使用扩展正则表达式 或egrep

-F 不使用正则表达式或 fgrep


11.※正则表达式※

(1)REGEXP

由一类特殊字符及文本字符所编写的模式,其中有些字符(元字符)不表示字符字面意义,而表示控制或通配的功能。

程序支持:grep,sed,awk,vim,less,nginx,varnish等

分两类:

基本正则表达式:BRE

扩展正则表达式:ERE

使用方式 grep -E 或 egrep

(2)字符匹配:

. 匹配任意单个字符(类似文件名匹配时的问号)

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

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

[:alnum:] 字母和数字             等于[0-9a-zA-Z]

[:alpha:] 代表任何英文大小写字符     等于[A-Z a-z]

[:digit:] 十进制数字

[:lower:] 小写字母[:upper:] 大写字母

[:blank:]  空白字符(空格和制表符)

[:space:]  水平和垂直的空白字符(比[:blank:]包含的范围广,一般常用space表示空格)

[:cntrl:]  不可打印的控制字符(退格、删除、警铃...)

[:xdigit:] 十六进制数字

[:graph:]  可打印的非空白字符

[:print:]  可打印字符

[:punct:]  标点符号


(3)匹配次数

匹配次数:用在要指定次数的字符后面,用于指定前面的字符要出现的次数

匹配前面的字符任意次,包括0次

贪婪模式:尽可能长的匹配

.* 任意长度的任意字符

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

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

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

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

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

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

(4)位置锚定

位置锚定:定位出现的位置

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

如图,只显示以root开头的行

行尾锚定,用于模式的最右侧(同理,只显示以指定内容结尾的行)

^PATTERN$  用于模式匹配整行

^$  空行

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

如图,其实是显示出来匹配的结果的,只是因为是空白所以不太方便看出来

\<\b 词首锚定,用于单词模式的左侧(就是单词必须以root开始)

\>\b 词尾锚定;用于单词模式的右侧(就是单词必须以root结尾)

\<PATTERN\> 匹配整个单词

(因为单词必须以root开头,也要以root结尾,就是匹配整个单词啦)

如图,不加锚定时rooter alroot这种带有root的单词也会被匹配出来,如果只想匹配root这个单词就在词首词尾都加上锚定,可只显示root的匹配结果。

(5)其他的表达

分组:

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

  后向引用:引用前面的分组括号中的模式所匹配字符,而非模式本身

分组括号中的模式匹配到的内容会被正则表达式引擎记录于内部的变量中,这些变量的命名方式为: \1, \2, \3, ...

正则表达式中的小括号"()"。是代表分组的意思。 如果再其后面出现\1则是代表与第一个小括号中要匹配的内容相同。注意:\1必须与小括号配合使用。

\1 表示从左侧起第一个左括号以及与之匹配右括号之间的模式所匹配到的字符。

\2 表示从左侧起第二个左括号以及与之匹配右括号之间的模式所匹配到的字符。以此类推。

示例:\(string1\+\(string2\)*\)

\1 表示string1\+\(string2\)*

\2 表示string2

表示或者:\|

示例:a\|b: a或b    C\|cat: C或cat   \(C\|c\)at:Cat或cat

(6)扩展正则表达式

使用扩展的正则表达式可以使命令更简便一些

egrep = grep -E

egrep [OPTIONS]PATTERN [FILE...]

使用egrep或加上-E之后,除了词首词尾锚定和后向引用外,其余之前需要带\的都可以去掉\了。

时间: 2024-08-06 16:06:16

查看,统计、正则表达式——Linux基本命令(9)的相关文章

Linux环境下查看网络性能的基本命令

                 Linux环境下查看网络性能的基本命令 由于Linux经常使用的是字符界面,而且Linux的功能比较强大,具有默认路由功能,相当于网关和路由器.在网络性能方面也比较稳定,而且配置简单.当然在配置网络的时候可能会发生网络的连通性不稳定或者不通.一下命令或许对大家有所帮助: 1.curl & wget 使用curl或wget命令,不用离开终端就可以下载文件.如你用curl,键入curl -O后面跟一个文件路径.wget则不需要任何选项.下载的文件在当前目录. cur

Linux03 /Linux基本命令

Linux03 /Linux基本命令 1.Linux命令行的组成结构 2.Linux系统命令操作语法格式 命令 空格 参数 空格 [文件或路径]需要处理的内容 rm -rf /tmp/* ls -la /home 1.一般情况下,[参数]是可选的,一些情况下[文件或路径]也是可选的 2.参数 > 同一个命令,跟上不同的参数执行不同的功能 3.执行linux命令,添加参数的目的是让命令更加贴切实际工作的需要 4.linux命令,参数之间,普遍应该用一个或多个空格分割 3.创建一个目录 /boy w

linux基本命令整理(三):进程和vim

linux基本命令整理(三) -----------进程和vim 一.进程 1.查看进程 ps:将某个时间点的程序运行的状况截取下来 a:所有的进程 x:后台进程 u:有效的使用者相关的进程(常用组合aux) -IA:也能观察系统所有的数据 axjf:连同部分的程序树状态 -I:今查看和自己bash相关的程序 top:动态的观察进程的变化 -d:后面接描述,就是整个页面刷新的时间:默认是5秒 -b:以批次的方式执行top -n:与-b搭配使用,意义是需要进行几次top的输出结果 如:top -b

LINUX基本命令行手册一

linux基本命令行手册一    1.1基本的网络命令        1>wget 从服务器上检索或下载文件,支持HTTP,HTTPS,FTP协议,服务器响应后,会将请求到的文件下载到当前用户所处的目录下        语法:wget [option]... [URL]...        option:            -t:尝试请求服务器的次数,若在指定的次数内,未响应,则断开链接            -o:将信息输出保存在记录文件中            -nc:支持断点下载,当下

linux基本命令操作(二)

·        du命令使用: [[email protected]]# du       //后没有选项和参数,默认评估当前目录下的所有目录的大小,当然也包括当前目录的大小// 237     ./grub 12      ./lost+found 6555    . [[email protected]]# ls config-2.6.18-348.el5  initrd-2.6.18-348.el5.img  System.map-2.6.18-348.el5 file1.txt]   

shell linux基本命令实例

1. 在当前目录下,查找20分钟内,被访问过的文件, 并将文件的详情显示出来: find ./ -name '*.log' -mmin -20 -exec ls -l {} \; 注释:其中{}将会被文件名替换,而;冒号用于表示命令结束.而;由于用于ls命令,而非find命令,所以需要escaped by \或者用单引号包起来. 2014年6月23日19:02:25 2.关于如何查看隐藏文件: ls -a 2014年6月24日09:39:02 3.grep正则表达式: 何为转义:将特殊符号当普通

Linux基本命令 网络命令

网络和监控命令类似于这些: hostname, ping, ifconfig, iwconfig, netstat, nslookup, traceroute, finger, telnet, ethtool 用于查看 linux 服务器 ip 地址,管理服务器网络配置,通过 telnet 和 ethernet 建立与 linux 之间的网络链接,查看 linux 的服务器信息等.下面让我们看看在 Linux 下的网络和监控命令的使用. 1. hostname hostname 没有选项,显示主

Linux基本命令Linux基本命令

一?Linux系统设置与基本操作(一)图形界面与命令行界面(1)图形界面:能够借助鼠标完成系统设置和程序使用等相关操作.(2)命令行界面:字符界面,没有图形程序,鼠标操作被弱化,通过命令行方式提供各项管理操作.(3)图形环境中的伪终端:需要运行在图形化界面中,并不是真正的纯字符终端,可以通过命令行方式执行各种管理操作.二Linux基本命令:(一) 命令格式:命令选项参数(1) 命令字:命令的名称.(2) 选项:调节命令的具体功能,决定命令如何执行.(3) 参数:命令字的处理对象,通常情况下可以使

Linux基本命令详解《二》(Linux中对目录和文件管理所使用的命令)

Linux基本命令详解<二>内容概述:Linux目录结构查看及检索文件备份及恢复文档vi文本编辑器一,Linux目录结构:树形目录结构(自顶而下)常见的子目录及作用:a./root:系统管理员root的宿主目录b./home:普通用户的宿主目录c./boot:系统内核/启动文件d./dev:设备文件e./etc:配置文件f./bin:所有用户可执行的命令g./sbin:管理员可执行的管理命令h./usr:应用程序i./var:日志文件(俗称可变长文件目录)j./proc :硬件配置信息k. /