正则表达式(小记)

很多东西看的时候,很有感觉,可是不幸的是过些时日便忘的一光二净了。而且很杯具的是,再此来翻查时,还查了贼久滴。故此,帖着吧。
1)什么是正则表达式? 个人理解就是利用一些程序工具(grep,egrep,awk,sed)来处理字符串的方法。
引用鸟哥经典的总结:正则表达式就是处理字符串的方法,以行为单位进行处理的,通过一些特殊符号的辅助,可以让用户轻松搜索/替换某些特定的字符串。例如:windows下的记事本,word,或者浏览器中,Ctrl+F 弹出来的那个对话框供我们搜索或替换的,使用的就是正则表达式。
2)正则表达式并不是程序工具,而是一个字符串处理的标准依据,这点是应该明确的,而最近在学的vi,sed,awk,grep,egrep(拓展的grep)正是实现正则表达式的程序工具。
3)工具一:grep
语法:[root@biao root]#grep [-acinv] '搜索字符串' filename
注意:grep支持基础正则表达式,而egrep支持拓展正则表达式。
4)格式化显示:print
awk及C中都使用的屏幕输出语句。java支持的是printf!
5)工具二:sed
功能:替换/删除/新增/选取特定行。
语法: sed [-nefr] [动作]
6)工具三:awk
与sed常常作用于整行处理相比,awk比较倾向于一行中分成数个“字段”来处理,因此,awk适合处理小型的数据。
语法:awk '条件类型 {动作} 条件类型2 {动作2}....' filename

用last可以将登录者的数据取出来,结果如下:(一部分)
[root@biao LinuxTest]# last
root pts/1 :0.0 Sat Apr 3 18:38 - 18:38 (00:00)
root pts/1 :0.0 Sat Apr 3 17:04 - 17:04 (00:00)
root pts/1 :0.0 Sat Apr 3 16:27 - 16:27 (00:00)
abiao tty7 :1 Sat Apr 3 15:07 still logged in
root pts/1 :0.0 Sat Apr 3 14:05 - 14:05 (00:00)
root pts/1 :0.0 Sat Apr 3 14:05 - 14:05 (00:00)
root pts/1 :0.0 Sat Apr 3 14:05 - 14:05 (00:00)
root pts/1 :0.0 Sat Apr 3 11:42 - 13:45 (02:02)
root pts/1 :0.0 Sat Apr 3 11:36 - 11:36 (00:00)
root pts/0 :0.0 Sat Apr 3 10:45 still logged in
root tty1 :0 Sat Apr 3 10:42 still logged in
reboot system boot 2.6.31.5-127.fc1 Sat Apr 3 10:40 - 20:05 (09:25)


/反斜杠在此处,表示换行输入。
[root@biao LinuxTest]# cat /etc/passwd|/
> awk '{FS=":"} $3<10 {print $1 "/t" $3}'
root:x:0:0:root:/root:/bin/bash
bin 1
daemon 2
..........(省略)

因为不同的语系编码是不一样的,所以,必须将语系改成英文语系,才能进行测试,否则可能会出现显示的内容与输出不符的情况。修改语系的方法如下:
#LANG=EN
#export LANG

大可以使用cat -A filemane 来查看是否有windows记事本或word 带过来的^M(换行符).

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值