一、格式化打印 printf
字符 | 意义 |
\a | 警告声音输出 |
\b | 退格键(Backspace) |
\f | 清除屏幕(form feed) |
\n | 输出新的一行 |
\r | 回车(Enter) |
\t | 水平的 [Tab] 按键 |
\v | 竖直的 [tab] 按键 |
\xNN | N 为数字,可以转换为字符 |
C语言 | |
%ns | n 为数字,s 为 string,即多少个字符 |
%ni | n 为数字,i 为 integer,即多少个整数字符 |
%N.nf | n、N为数字,f 表示浮点数,%5.2 表示有 5 位小数,两位小数点 |
二、awk
1. 语法
awk '条件类型1{动作1}条件类型2{动作2}...' filename
2. 流程
(1)读入第一行,将第一行的数据填入 $0(一整行),$1(第一列)
(2)依据类型的判断,判断是否需要进行后面的动作
(3)做完所有的动作与条件类型
(4)重复(1)~(3),直到数据结束
3. 变量
变量名称 | 代表意义 |
NF | 每一行所拥有的字段总数 |
NR | 目前 awk 处理的是第几行的数据 |
FS | 目前的分隔符,默认是空格键 |
4. 逻辑运算符
运算符 | 代表意义 |
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
== | 等于 |
!= | 不等于 |
4. 示例
(1)查看最近的 5 次登录记录
last -n 5
(2)使用 awk 打印用户名和 IP
last -n 5 | awk '{print $1 "\t" $3}'
(3)查看行列
last -n 5 | awk '{print $1 "\tlines:" NR "\t columes:" NF}'
三、文件比较工具
1. diff
(1)参数
-b:忽略一行当中仅有多个空白的区别,例如:hello word 与 hello word
-B:忽略空白行的区别
-i:忽略大小写的不同
(2)示例
2. cmp
以字节作为比较
3. patch
// 更新
patch -pN < patch_file
// 还原
patch -R -pN < patch_file
(1)参数
-p:后面的 N 表示取消几层目录的意思
-R:还原,将新的文件还原成旧的文件
(2)用例
patch -p0 < test.patch
patch -R -p0 < test.patch