正则表达式
文本文件的操作命令
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 {这没空格} 这里有个空格/;
grep能找出带有关键字的行,但是工作中有时需要找出该行前后的行,下面是解释
1. grep -A1 keyword filename
找出filename中带有keyword的行,输出中除显示该行外,还显示之后的一行(After 1)
2. grep -B1 keyword filename
找出filename中带有keyword的行,输出中除显示该行外,还显示之前的一行(Before 1)
3. grep -1 keyword filename
找出filename中带有keyword的行,输出中除显示该行外,还显示之前的一行(After 1)和显示之后的一行(After 1)