linux正则表达式与cut命令
cut命令
cut -d '分隔符' -f1:表示使用指定的分隔符将内容分割,并取走分割的第一块内容
cut -d '分隔符' -f1,2,3 :表示取出分隔符分完后的1,2,3列
cut -c1-2:表示只取走内容的第1个到第2个的字符
cut -c-2:表示只提取前2个字符
cut -c5-:表示只提取结尾的5个字符
正则表达式
反斜杆“\”:可以对具有特殊含义的字符进行转义,比如点号“.”
字符匹配元字符主要包括:点号".",方括号"[ ]"
点号:点号可以代替任意单个字符,相当于通配符中的“?”
方括号:其功能与通配符中的方括号一致,[a-z]代表a到z中的任意一个字符,[A-Z]代表A到Z的任意一个字符,[a-zA-Z0-9]代表任意字符,同时还具有使用“!”或者“^”去代表非逻辑,比如[!a-z]代表除了a-z其他的字符。方括号最好于大括号{}一起使用,使用方括号指定字符的类型,使用大括号去指定字符的个数。
^a字符:在a字符前面加上“^”字符,则表示找出以a字符开头的内容,其他以此类推
例子:grep "^[Aa]" /etc/passwd
找出/etc/passwd 文件中以A或a开头的内容
$字符:在字符的尾部加上美元符号,代表查找以美元字符前的字符串结尾的内容。
例子:root$
该例子代表查找以root结尾的内容
星号*:星号代表匹配前面的字符X次,这个次数是0到无穷
例子:x*y,这个正则表达式就代表匹配以y结尾的内容,同时y前面出现0次或者任意次x的内容
因为x的次数可以为0,也可以是无穷次,所以即便y的前面没有出现x,也是符合标准的,而出现x也是符合标准的。我们一般将星号与"."点号相结合,比如我们可以用正则表达式去表示通配符中的星号*,也就是任意数量的字符。“.*”,因为点号可以代表任意字符,而星号又代表前面的字符为任意个,所以由此达成与通配符中“*”星号的效果。
问号?:代表匹配前面的字符1次或者0次,但是?在正则表达式中有特殊的作用,所以我们需要将使用问号的时候,需要在前面加上反斜杆用作转义“\”,
例子:r./?./?t
因为问号的功能是匹配前面的字符0到1次,且上述例子中问号前面的字符都是点好,也就是任意单个字符,所以这个例子代表查找,字符个数在4个到2个之间,且开头字符为r,结尾字符为t的内容。
加号+:加号代表前面的字符至少匹配一次,同时它的使用必须加上反斜杆"\"
例子:r\+t
这个例子就代表匹配t前面出现至少一次r的内容,可以是rt,rrt,或者rrrt,但是不可能只出现一个t。
{}大括号:大括号的两个括号都需要使用反斜杆“\”转义,同时在大括号里面加入想要匹配的次数,如\{5\},这个就代表匹配5次,同时还可以输入\{m,n\},代表至少m次,至多n次。\{m,\}这个代表至少m次,至多不限制,\{,n\}这个代表至少不限,至多n次。
例子1:ro\{2\}t
因为大括号的前面出现的字符是o,且大括号里面的数字是2,代表匹配两次,所以这个例子就代表查找root的相关内容。
例子2:ro\{1,2\}t
因为里面输入的形式是\{m,n\},所以该例就代表查找rot或者root的内容。
小括号():如果我们想要去指定某个字符串出现的次数,就需要用()将其包括,但是使用小括号的时候也需要使用反斜杠进行转义。
例子\(ro\)\{2\}
这个就代表查找roro的内容。
\w 匹配数字字母下划线(小写w)。
\W 匹配非数字字母下划线(大写W)。
\s 匹配空格、制表符、换行符(小写s)。
\S 匹配非空白符(大写S)。
PS!!!!
但是在linux中,这些转义后具有特别含义的元字符只能单独使用,不能结合*,+或者{number},当我们将上面这些转义字符放在[]方括号中好像连他原来的含义都失去了,所以如果要使用代表这些含义的正则字符,建议使用下面介绍的posxi字符。
“=~” :判断该符号左边的字符串是否满足右边的正则表达式,且使用该判断符,必须将被比较的字符串放入两个方括号的内部[[ ]]
POSIX字符:
[:alnum:] #文字数字字符
[:alpha:] #文字字符
[:digit:] #数字字符
[:graph:] #非空字符(非空格、控制字符)
[:lower:] #小写字符
[:cntrl:] #控制字符
[:print:] #非空字符(包括空格)
[:punct:] #特殊符号,差不多键盘上非非字符和数字的符号都匹配
[:space:] #所有空白字符(空格,制表符)
[:upper:] #大写字符
[:xdigit:] #十六进制数字(0-9,a-f,A-F)
PS!!!在使用posix字符必须要使用方括号进行包括,比如[[:alnum:]],上面红色标注的是我觉得比较重要的posix字符,而且这个posix好像只能在linux的工具中使用!!!!
拓展正则表达式
同上面所有提到的要使用反斜杆转义的符号比如“?”,“+”,“{}” “()”都不需要使用反斜杆,且上述不使用反斜杆的也可以进行使用,但是必须使用egrep 或者grep -E。
egrep -o:可以提取只符合正则表达式的内容
linux正则表达式与cut命令相关推荐
- linux cut命令学习,Linux中的cut 命令详解
今天小编要跟大家分享的文章是关于Linux中的cut 命令详解.cut 命令在Linux和Unix中的作用是从文件中的每一行中截取出一些部分,并输出到标准输出中.我们可以使用 cut 命令从一行字符串 ...
- 第十三天-linux正则表达式及重点命令
正则表达式: 简单的说,正则表达式就是一套处理字符串的规则和方法,以行为单位对字符串进行处理,通过特殊的符号辅助,我们可以快速的过滤,替换某些特定的字符串. 运维工作中,会有大量的访问日志,错误日志. ...
- linux中用截取一些信息,Linux如何使用cut命令截取文件信息
在Linux众多命令中,cut命令可用来截取文件信息,截取Linux字符串,下面将针对cut命令的用法做个详细介绍,感兴趣的朋友可以来学习下. cut命令有截取的意思,可从linux文件或者标准输入中 ...
- 【Linux篇】cut命令详解
cut命令详解 cut的工作就是"剪",具体的说就是在文件中负责剪切数据用的.cut 命令从文件的每一行剪切字节.字符和字段并将这些字节.字符和字段输出. 一.基本语法 cut [ ...
- linux shell之cut命令
1 cut简单介绍 我们一般用的就是获取文本一行的的第几个到第几个字符 2 常见使用 1) cut -c start-end file 这里就是获取start到end之间的字符 比如我们这里有文 ...
- linux 通配符 正则表达式 区别,linux 正则表达式和通配符
linux 正则表达式和通配符 通配符用于查找文件 包含三种: * ? [] * 代表任意个任意字符 ? 代表任意一个字符 [] 代表中括号中的一个字符 正则表达式(正则是包含匹配,只要包含就可以匹 ...
- Linux cut命令
用途 文本文件按列提取. 特点 过于简单,只能处理固定格式的分隔符,分隔符不能使用正则表达式. 用法 命令基本格式 -b.-c.-f分别表示字节.字符.字段(即byte.character.field ...
- linux下的zz命令,linux中cut命令的用法
本文主要记录一下Linux中cut命令的用法. 1. cut命令使用说明 Usage: cut OPTION... [FILE]... cut命令用于选出FILE文件中每一行的某些部分,然后打印到标准 ...
- Linux文字分段裁剪命令cut(转)
Linux cut命令用于显示每行从开头算起num1到num2的文字. 语法 cut [-bn] [file] cut [-c] [file] cut [-df] [file] 使用说明: cut命令 ...
最新文章
- oracle rac对心跳要求_关于心跳网络引起的Oracle RAC的节点驱逐(不是实例驱逐)...
- I - Watering Flowers CodeForces - 617C
- dubbo协议原理机制 单一长连接
- PyCharm缺少cv2模块怎么办?怎样在PyCharm中安装自己需要的package?
- Golang slice原理
- 预防和检测如日中天?事件响应表示不服
- 注意,Fastjson 最新高危漏洞来袭!
- VisualSVN安装图解
- linux16.04下安装Clion2019.2记录以及C++代码运行
- XAMPP浏览器输入localhost跳转localhost/dashboard/
- 漫游书海-我的阅读简史
- 中国地图矫正中的误差
- 在埋头写程序学技术的同时,有没有想到你们的老板和上司在搞什么?
- 关于编译优化选项o3的问题
- C语言 键盘编码 及 用法
- docker 运行 web 服务和部署 Go web app
- Bixby的AI语音,能否推进人机交互进程?
- 【论文阅读01】2021 兵棋推演的智能决策技术与挑战 尹奇跃
- 北京某电信运营商数据中心暖通节能技术和应用
- 如何判断用户是否为第一次进入app或者是第一次进入指定页面