-------------------------------------
作者:Crushlinux
时间:2012-03-06
-------------------------------------
1、
对文本操作的命令
2、使用正则表达式的命令
3、正则表达式
4、对文本的操作
5、组合命令完成复杂任务
diff报告文件差异
uniq 去除文件中相邻的重复行
cut只显示文件中的某一列
sort按序重排文本
wc统计文件的行,词,字数
grep –R 对一个目录下的所有文件和子文件的所有文件进行删选
grep –l 包含着指定字符的文件名
grep –v 反向选择,不包含……
grep –c 统计这行文件是多少行,显示行号
grep bash /etc/passwd 显示包含bash
grep –v bash /etc/passwd显示不包含bash
grep user1 /etc/passwd
grep ‘\<user1\>’ /etc/paswd
grep user1 /etc/passwd | cut –d: -f7
grep –A5 –B5 user1 /etc/passwd–A5上面5行,-B5下面5
cut –d-f1 /etc/passwd |grep shrek (截段)
cut –d-f2-4(段)-c1-5(字符)
cut –c1-3 /etc/passwd
sort –n(数字) -r(反向)-t2(第二列)
sort –t –k 2 –n /etc/passwd2代表第二列–n代表以数字形式
wc /etc/passwd
42()67(单词) 1925(字符) /etc/passwd
*tail –f /var/log/messages 可以一直盯着一个日志文件
du |sort –n –r |head –n 3 |cut –f2
du-----显示文件大小
sort –n---------按大小来排序,-r按反向排序
head –n 3--------------头三行
cut –f2--------------找到一行中的第二段
cut –d: -f7 /etc/passwd |uniq
cut –d: -f7 /etc/passwd |sort |uniq |wc –l
diff a b 对比 a b两个文件的区别
diff可以将两个版本的差异生成一个patch文件
patch –p0 <patch-3.2.13 将差异导入做升级
使用正则表达式的命令
grep 显示文件中匹配关键字的行
locate –r正则表达式(查找文件)
less /或?查找时使用
vim 查找或替换时使用
‘ ’为避免被shell所干扰
例:echo aaaecho bbb echo * echo ‘*’
为避免正则表达式中的东西被bash中通配符所干扰
grep ‘s.*k’ a. 代表一个字符
grep *shrek$* a代表以shrek结尾
grep ‘^shrek’ a 代表以shrek开头的
. 代表任意的一个字符
*代表多个前一个字符a*代表空,aaaaaa及多个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 –v ‘^#’ /etc/squid/squid.conf
grep –v ‘^#’ /etc/squid/squid.conf |grep –v ‘^$’
grep –v ‘^#’ /etc/squid/squid.conf |grep –v ‘^$’|wc –l
vi /etc/passwd
:%s /shrek/aaaaa/g全文替换
:%s /\/shrek/aaaaa/g 只替换以/开头的shrek
[ ] [ ]中的任意一个字符
grep ‘^[abc]’ /etc/passwd
[^a-z] 不是a-z的任意字符
a?表是一个或零个单独的a
a+表示aaaaaa乃至多个
egrep 扩展正则表达式