shell脚本学习指南[四](Arnold Robbins & Nelson H.F. Beebe著)

2019-09-23 09:42:05丽君

字符串格式化sprintf(format,expression1,expression2,...) ,它会返回已格式化的字符串作为其函数值。printf()的运行方式也是这样,只不过它会在标准输出或重定向的文件上显示格式化后的字符串,而不是返回其函数值。这俩函数类似shell里的printf,但是还有些许差异,使用的时候注意一下。

数值函数:
atan2(y,x) 返回y/x的反正切
exp(x) 返回x的指数,ex
int(x),log(x),cos(x),sin(x),sqrt(x),
rand() 返回0<=r<1
srand(x) 设置虚拟随机产生器的种子为x,并返回正确的种子。如果省略x,则使用当前时间(以秒计)。如果srand()未被调用,则awk每次执行都会从默认种子开始。

awk内置变量(预定义变量)
说明:表中v项表示第一个支持变量的工具(下同):A=awk,N=nawk,P=POSIX awk,G=gawk

V 变量 含义 缺省值
--------------------------------------------------------
N ARGC 命令行参数个数
G ARGIND 当前被处理文件的ARGV标志符
N ARGV 命令行参数数组
G CONVFMT 数字转换格式 %.6g
P ENVIRON UNIX环境变量
N ERRNO UNIX系统错误消息
G FIELDWIDTHS 输入字段宽度的空白分隔字符串
A FILENAME 当前输入文件的名字
P FNR 当前记录数
A FS 输入字段分隔符 空格
G IGNORECASE 控制大小写敏感0(大小写敏感)
A NF 当前记录中的字段个数
A NR 已经读出的记录数
A OFMT 数字的输出格式 %.6g
A OFS 输出字段分隔符 空格
A ORS 输出的记录分隔符 新行
A RS 输入的记录他隔符 新行
N RSTART 被匹配函数匹配的字符串首
N RLENGTH 被匹配函数匹配的字符串长度
N SUBSEP 下标分隔符 "34"

以上基本上把所有awk的内容详细讲完了,十分的强大,网上搜了些别的关于awk的讲解,没发现有哪篇讲解像这本书里这么全的。
上边例子给出的比较少,这里有很多例子可供参考。


第十章文件处理


先讲了ls命令,应该很熟了,再罗列一下主要选项吧:
-1 数字1,强制单栏输出,默认的以适合窗口宽度输出
-a 显示所有文件
-d 显示与目录相关信息,而非他们包含的文件的信息
-F 使用特殊结尾字符,标记特定的文件类型。试了一下路径加了斜杠,可执行文件加了*号。别的没怎么试。
-g 仅适用于组:省略所有者名称
-i 列出inode编号
-L 紧连着符号性连接,列出他们指向的文件。
-l 小写L,显示详细信息。
-r 倒置默认排序
-R 递归列出下沿进入每个目录
-S 按照由大到小的文件大小计数排序,仅GNU版本支持。
-s 以块(与系统有关)为单位,列出文件的大小。
-t 按照最后修改时间排序
--full-time 显示完整的时间戳

说明一下长信息显示的时候的内容:
drwxrwxr-x 2 administrator administrator 1024 1月 5 10:43 bin
第一个字母 - 表示一般文件 d表示目录 l表示符号连接