linux shell命令小结(二)
1、awk '条件类型1{动作1} 条件类型2{动作2} ...' filename : 处理“每一行栏位内的数据”,默认的栏位分隔符为空格或者制表符(Tab).
列有变量名$1,$2,$3....,而$0表示整个行。
awk的处理流程:
a、读第一行,并将第一行的数据填入$1,$2...变量中;
b、依据条件类型的限制,判断是否进行后续动作;
c、做完所有的动作和条件类型;
d、若还有后续行,重复a~c的操作,直到读完所有数据。
------------------------------------------------------------------------------------------
awk内置变量
NF 每一行的栏数
NR 目前处理的第几行
FS 目前的分隔字节,默认是空白键
------------------------------------------------------------------------------------------
BEGIN 关键字 : 使第一行的行为和后续行相同;
awk中的命令以‘;’分隔,或者回车符(Enter)分隔;
awk中的变量不用$。
2、diff [-bBi] from-file to-file : 比较两个文件的差异
-b 忽略一行当中,仅有多个空白的差异
-B 忽略空白行的差异
-i 忽略大小写的差异
3、patch -pN <patch_file : 升级(打补丁)
patch -R -PN <patch_file : 还原
-p : 后面接可以取消几层目录
-R :还原
例子:
先用diff命令来分析新旧文件的差异,再用patch来打布丁。
diff -Naur passwd.old passwd.new > passwd.patch
patch -p0 < passwd.patch