文本管理工具
1.cat:查看文件,读取键盘输入
-A:查看文件所有信息
-n:显示行数
-s:压缩连续的空行
2.tac:倒序显示文件内容
3.rev:行内的内容倒序显示
3.more:分页显示
4.less:一页一页显示
5.head:分行显示,从头开始
-n:n是数字,显示要查找的行数
-c:指定获取多少个字节
6.tail:从后向前显示
-n:从后向前显示行数
-c:查看截取的字节数
-f:显示跟踪文件,(如果有文件输出到tail内,会自动更新显示)
小技巧,可以用&,表示后天运行程序
7.cut:截取命令
-d:以什么字符截取
-f:显示截取的第几列
-c:按字符数切割 整列的前多少个字符
例:cat /etc/passwd | cut -d: -f3
表示用:分割,取第3列
–output-delimiter=* :表示用*号替换分隔
8.paste:合并两文件内容
-d:指定分隔符
-s:压缩成一行 自己文件列成一行,第二行表示是第二个文件列变成行
9.wc:统计行数
格式:行数 单词数 字符数 文件名
-l:表示共有多少行
-w:表示单词数
-c:表示字节数
-m:表示字符数
例:cat /etc/passwd |wc -l 这个文件有多少用户(多少行)
10.sort:文本排序
-r:反向排序
-n:按数字大小排序
-t:以什么字符分隔选取
-k:选取多少列
-f:忽略大小写
例:cat /etc/passwd | sort -rn -t: -k3 用户按UID从大往小排序
-u:删除输出中的重复行
11.diff:比较两个文件的不同
格式:diff file1 file2
文本处理工具
1.grep:文本过滤
-i:忽略大小写
-o:显示匹配文本
-v:显示未匹配的行
-q:不输出任何信息
-n:显示匹配行号
-c:显示匹配的行数
-e:或者的关系
-A:显示匹配后的多少行 grep -A3
-B:显示匹配前多少行
-C:显示匹配上下文多少行
-w:正行匹配单词 必须是单词,两个单词相连无任何字符的不能匹配
正则表达式
分为:
基本正则表达式 BRE
可以字符匹配、次数匹配、锚定、分组
. :匹配任意单个字符;
[] :匹配指定范围内的任意单个字符
[^] :匹配指定范围外的任意单个字符
[:digit:]、[:lower:]、[:upper:]、[:alpha:]、[:alnum:]、[:punct:]、[:space:]
例:1、显示/proc/meminfo文件中以大小s开头的
2、显示/etc/passwd文件中不以/bin/bash结尾的行
3、显示用户rpc默认的shell程序
*:匹配前面的字符任意次,包括0次
贪婪模式:尽可能长的匹配
.*:表示任意字符
\?:最多匹配1次,也可以是0次
\+:最少匹配1次 可以无穷大
\{m\}:匹配前面的字符m次
\{m,n\}:匹配前面的字符至少m次,至多n次
\{,n\}:匹配前面的字符至多n次
\{m,\}:匹配前面的字符至少m次
锚定:
^:在整行的开头
$:在整行的结尾
\<或者\b:表示单词的开始
\>或者\b:表示单词的结束
分组:
\(\):将一个或多个字符捆绑在一起,当作一个整体进行处理
括号中匹配到的内容保存在变量中,用\1,\2等可以调用这些变量
括号中的内容看成整个一个连续的字符
例:添加用户bash、testbash、basher以及nologin(其shell为/sbin/nologin),而后找出/etc/passwd文件 中用户名同shell名的行
扩展正则表达式 ERE
^ :行首
$ :行尾
\<, \b :语首
\>, \b :语尾
分组:
()
后向引用:\1, \2, …
或者:
a|b
例:显示当前系统root、mage或wang用户的UID和默认shell
原创文章,作者:landanhero,如若转载,请注明出处:http://www.178linux.com/29876