-------------------------------------
作者:Crushlinux
时间:2012-03-06
-------------------------------------
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” 博客,谢绝转载!