(1)文件浏览
- cat 查看文件内容
- more 以翻页形式查看文件内容(只能向下翻页)
- less 以翻页形式查看文件内容(可上下翻页)
- head 查看文件的开始10行(或指定行数)
- tail 查看文件的结束10行(或指定行数)
(2)基于关键字搜索
- 命令grep用以基于关键字搜索文本(可以是文件,也可以是命令输出的文本)
- grep ‘linuxcast’ /etc/passwd (在该文件里查找包含linuxcast的行)
- find / -user linuxcast | grep Video (在根目录下查找所有属于user用户的文件,并在查找结果中查找包含Video关键字的行)
- -i 在搜索时忽略大小写
- -n 显示结果所在的行数(在文件中查找)
- -v 输出不带关键字的行
- -Ax 输出关键字所在行及之后的x行(x为一数字)
- -Bx 输出关键字所在行及之前的x行(x为一数字)
- 注意:grep的功能远不止于此。
(3)基于列处理文本
- 命令cut用以基于列处理文本内容
- cut -d: -f1 /etc/passwd (对于文本passwd中的内容按:切割,并输出第1列)
- grep linuxcast /etc/passwd | cut -d: -f3 (在passwd中查找包含linuxcast的行,并按:切割,输出第3列)
- -d 指定分割字符(默认是TAB)
- -f 指定输出的列号
- -c 基于字符进行切割(cut -c2-6 /etc/passwd 输出passwd每行中的第2到第6个字符)
(4)文本统计
- 命令wc用以统计文本信息(wordcount)
- wc 文件名
- -l 只统计行数(line)
- -w 只统计单词数(word)
- -c 只统计字节数
- -m 只统计字符数
(5)文本排序
- 命令sort用以对文本内容进行排序
- sort 文件名
- -r 倒序排序
- -n 基于指定数字进行排序
- -f 忽略大小写
- -u 删除重复行
- -t c 使用c作为分隔符分割为列进行排序
- -k x 当进行基于指定字符分割为列的排序时,指定基于哪个列排序
(6)删除重复行
- sort -u 可以删除重复行
- uniq 可以用于删除重的相邻行(只能删除相邻的重复行)
(7)文本比较
- 命令diff用以比较两个文件的区别
- diff linuxcast linuxcast-new
- -i 忽略大小写
- -b 忽略空格数量的改变
- -u 统一显示比较信息(一般用于生成patch文件,补丁文件)
diff -u linuxcast linuxcast-new >final.patch
(8)处理文本内容
- 命令tr用以处理文本内容
- 删除关键字 tr -d ‘TMD’ < linuxcast (注意,tr只接收文件流,所以需要使用重定向符号,将linuxcast文件重定向)
- 转换大小写 tr ‘a-z’ ‘A-Z’ < linuxcast
(9)搜索替换
- 命令sed用以搜索并替换文本
- sed ‘s/linux/unix/g’ 文件名 (”中为正则表达式,搜索并替换文件中的linux为unix,/g意思是如果一行中有多处,都替换为unix)
- sed ‘1,50s/linux/unix/g’ 文件名 (对指定的1-50行进行搜索并替换操作)
- sed -e ‘s/linux/unix/g’ -e ‘s/nash/nash_su/g’ 文件名 (使用-e可指定多个替换规则 )
- sed -f sededit linuxcast (将命令存在sededit文件中,然后用命令调用这个文件即可)
注意:所有的Shell命令,都可以写在脚本中使用!!