1. 总体介绍 Linux常用的文本处理命令
more/less: 逐屏显示文件
cat与od: 一次性列出文件内容
head与tail: 显示文件的头部或者尾部
tee: 三通
wc: 字数统计
sort: 对文件内容进行排序
tr: 翻译字符
uniq: 筛选文件中的重复行
2. more/less: 逐屏显示文件
more/less常用快捷键,推荐使用less代替more命令。
: 空格键,翻页
: 回车键,向下翻一行
q: 退出
j与k: 向上或者向下翻一行
/: 查询关键字
3. cat与od: 一次性列出文件内容
cat: 命令来源: concatenate:串接,文本格式打印。
常用参数:
-n: 打印文件的时候,带上行号。
od: 命令来源: octal dump:逐字节打印,可以用八进制/十六进制打印。
常用参数:
-c: 按照字符打印,遇到不可打印字符,打印编码
-t c: 按照字符打印,如果字符不可打印,则打印一个八进制的ASCII码。
-t x1: 以一个字节为单位,每个字节都按照十六进制打印
-t o1: 以一个字节为单位,每个字节都按照八进制打印
-t d1: 以一个字节为单位,每个字节都按照十进制打印(但是超过127以后,会显示负数)
-t u1: 以一个字节为单位,每个字节都按照u(无符号整数)打印
下列方式可以以16进制显示一个字符串的编码。
echo abcdABCD | od -t x1
4. head与tail: 显示文件的头部或者尾部
head与tail: 不带参数,默认显示文件的头10行或者尾10行。
常用参数:
-n: 指定显示的行数。
tail -f: 可以持续监视一个文件,只要文件有变化,立马更新。(-f:是forever的意思。)
5. tee: 三通
tee:将标准输入stdin得到的数据,抄送到标准输出stdout显示,同时存入磁盘文件中。
举例:
# 将./myap的输出打印终端中,同时将输出保存到【myap.log】文件中。
./myap | tee myap.log
6. wc: 字数统计
wc:列出文件一共有多少行,有多少个单词,多少字符。
常用参数:
-l: 只列出行数。
# 显示系统有多少个进程
ps -ef | wc -l
# 显示当前有多少个用户登陆
who | wc -l
7. sort: 对文件内容进行排序
常用参数:
-n: [number]对于数字按照算数值大小排序,而不是按照字符串比较规则。
比如:123与67:
如果按照字符串排序的话,67比123大;
如果按照数字值排序的话,123比67大
8. tr: 翻译字符
tr string1 string2: 将标准输入拷贝到标准输出;如果标准输入中出现string1中包含的字符,那么替换为string2中对应的字符,然后再拷贝到标准输出。
echo abcdABCD | tr aBc AbC
# 输出结果如下:
AbCdAbCD
用 [ ]指定一个集合
# 将小写字母转换为大写字母
echo abcdABCD | tr '[a-z]' '[A-Z]'
# 输出结果如下:
ABCDABCD
用 \加上三个八进制数字(类似C语言)表示一个字符
# 将%改为换行符,注意不要漏掉必须的单引号
cat file1 | tr % '\012'
8. uniq: 筛选文件中的重复行
uniq: 这个命令后面只允许出现一个文件。
常用参数:
-u: [uniq]只保留没有重复的行
-d: [duplicated]只保留有重复的行(但是只打印一次)
: 如果没有选项,打印没有重复的行和有重复的行(但是只打印一次)
-c: [count]计数同样的行出现的次数
注意:重复的行:指的是紧邻的两行内容相同,所以uniq命令一般都会放在sort命令的后面。