正则表达式

-------------------------------------
作者:Crushlinux
时间:2012-03-06
E-mail [email protected]
-------------------------------------
1、
对文本操作的命令
2、 使用正则表达式的命令
3、 正则表达式
4、 对文本的操作
5、 组合命令完成复杂任务
diff 报告文件差异
uniq 去除文件中相邻的重复行
cut 只显示文件中的某一列
sort 按序重排文本
wc 统计文件的行,词,字数
grep �CR 对一个目录下的所有文件和子文件的所有文件进行删选
grep �Cl 包含着指定字符的文件名
grep �Cv 反向选择,不包含……
grep �Cc 统计这行文件是多少行,显示行号
grep bash /etc/passwd 显示包含 bash
grep �Cv bash /etc/passwd 显示不包含 bash
grep user1 /etc/passwd
grep ‘\<user1\>’ /etc/paswd
grep user1 /etc/passwd | cut �Cd: -f7
grep �CA5 �CB5 user1 /etc/passwd�CA5 上面 5 行, -B5 下面 5
cut �Cd -f1 /etc/passwd |grep shrek ( 截段 )
cut �Cd -f2-4 (段) -c1-5 (字符)
cut �Cc1-3 /etc/passwd
sort �Cn (数字) -r (反向) -t 2 (第二列)
sort �Ct �Ck 2 �Cn /etc/passwd2 代表第二列 �Cn 代表以数字形式
wc /etc/passwd
42( )67 (单词) 1925 (字符) /etc/passwd
*tail �Cf /var/log/messages 可以一直盯着一个日志文件
du |sort �Cn �Cr |head �Cn 3 |cut �Cf2
du----- 显示文件大小
sort �Cn--------- 按大小来排序, -r 按反向排序
head �Cn 3-------------- 头三行
cut �Cf2-------------- 找到一行中的第二段
cut �Cd: -f7 /etc/passwd |uniq
cut �Cd: -f7 /etc/passwd |sort |uniq |wc �Cl
diff a b 对比 a b 两个文件的区别
diff 可以将两个版本的差异生成一个 patch 文件
patch �Cp0 <patch-3.2.13 将差异导入做升级
使用正则表达式的命令
grep 显示文件中匹配关键字的行
locate �Cr 正则表达式 (查找文件)
less / 或?查找时使用
vim 查找或替换时使用
‘ ’ 为避免被 shell 所干扰
例: echo aaa echo bbb echo * echo ‘*’
为避免正则表达式中的东西被 bash 中通配符所干扰
grep ‘s.*k’ a. 代表一个字符
grep *shrek$* a 代表以 shrek 结尾
grep ‘^shrek’ a 代表以 shrek 开头的
. 代表任意的一个字符
* 代表多个前一个字符 a* 代表空, a aa aaa 及多个 a
.* 代表多个任意字符
\ 脱意符 \. . 的特殊意义脱去 \*
^ 开头 ^hi
$ 结尾 user2$
^$ 代表空行
\<s..k\> s 开头以 k 结尾中间有两个字符的一个单词
\<aaa 单词以 aaa 开头
sh\> 单词以 sh 结尾
a\{18\}a 这个字符重复 18
*ls /usr/share/dict/words ----linux 下的字典文件
grep ‘.\{40.\}’ 删选出 linux 字典中包含 40 个字符以上的单词
grep ‘^i.\{18\}n$’ /usr/share/dict/words i 开头以 n 结尾中间有 18 个字母的单词
grep �Cv ‘^#’ /etc/squid/squid.conf
grep �Cv ‘^#’ /etc/squid/squid.conf |grep �Cv ‘^$’
grep �Cv ‘^#’ /etc/squid/squid.conf |grep �Cv ‘^$’|wc �Cl
vi /etc/passwd
:%s /shrek/aaaaa/g 全文替换
:%s /\/shrek/aaaaa/g 只替换以 / 开头的 shrek
[ ] [ ] 中的任意一个字符
grep ‘^[abc]’ /etc/passwd
[^a-z] 不是 a-z 的任意字符
a ?表是一个或零个单独的 a
a+ 表示 a aa aaa 乃至多个
egrep 扩展正则表达式

本文出自 “Crushlinux” 博客,谢绝转载!

你可能感兴趣的:(正则表达式,shell)