Chinaunix首页 | 论坛 | 博客
  • 博客访问: 165427
  • 博文数量: 37
  • 博客积分: 1132
  • 博客等级: 准尉
  • 技术积分: 380
  • 用 户 组: 普通用户
  • 注册时间: 2010-11-18 16:56
个人简介

吆嘻!

文章分类

全部博文(37)

文章存档

2013年(1)

2012年(19)

2011年(17)

分类: LINUX

2011-05-24 15:33:38

正则表达式

文本文件的操作命令
cat、more 、less 、hard、 tail

正则表达式的命令
. 单一的字符  .* 任何一个字符
[abc]   当前位置有a、或b、或c   [^abc]   除了abc 以外的任意字符
^a  a开头的行 a& 以a结束的行
\< 以什么开头 \> 以什么结尾 ,表示的是单词
a* 任意多个a  a? 一个或二个a  a+ 相当于前面的合并
a\{n\}  a 重复了n次


对文本的操作
grep  less vim diff cut sort wc uniq
grep -R -l -v -A(数字) -B(数字)
grep -R centos  /etc  依次找出etc 下有带有 centos 的文件
grep -R -l centos /etc  只显示文件名
grep -R -l -v centos /etc 反向选择
grep -A1 -B4 centos /etc/passwd


cut -d 分隔符 -f列数1-3
cut -d: -f1 /etc/passwd 显示以:分割的第一段 /etc/passwd
cut -d: -f3 /etc/passwd |sort   显示第三段并sort 排序
cut -d: -f3 /etc/passwd |sort  -n 显示第三段并sort 排序,按照数字大小

sort -t 分隔符 -k 列 -n 排序
sort -t: -k 3 -n /etc/passwd  按照:分割,第三列排序

wc -l -w -c
wc /etc/passwd统计
35 54 1611
54 个单词 1611个字符 35 行
运用命令组合来完成复杂的任务

 

运用命令组合来完成复杂的任务

1、统计一个目录里面有多少的文件夹和文件、连接等。
ls | wc -l  查看有多少个文件夹包括文件
[root@localhost etc]# ls -l |grep '^d' |wc -l 查看目录并wc 多少个目录
[root@localhost etc]# ls -l |grep '^-' |wc -l  > test 查看多少个文件 并重定向

2、取出配置文件中的注释并保存为新文件

[root@localhost etc]# grep '^#' -v /root/inittab

[root@localhost etc]# grep '^#' -v /root/inittab > test.confs


[root@localhost samba]# grep -v '^;' smb.conf |grep -v '^#' 以#号;号开头的文件过滤掉
[root@localhost samba]# grep -v '^#' smb.conf |grep -v '^;'
[root@localhost samba]# cat smb.conf  |grep -v '^#' |grep -v '^;'
[root@localhost samba]# grep -v '^#' smb.conf |grep -v '^;' |grep -v '^$' 以#;开头的过滤掉,并把空格过滤掉
3、查找文件并删除
find 不支持正则表达式
locate 它支持,用它前使用updatedb更新数据库 还需要加-r 参数
-r 让它使用正则表达式

find -name ’a*d‘ -ok rm {}  \; 找出以a开头,以d结尾的文件 并rm,-ok 提示出来
find -name ‘a *d’ -exec rm {这没空格}  这里有个空格\;

阅读(2546) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~