逐行读取文本,默认以空格或tab键为分隔符进行分隔,将分隔所得的各个字段保存到内建变量中,并按模式或者条件执行编辑命令。sed命令常用于一整行的处理,而awk比较倾向于将一行分成多个“字段”然后再进行处理。awk信息的读入也是逐行读取的,执行结果可以通过print的功能将字段数据打印显示
-F 指定分隔符
-v 自定义变量
-f 脚本
FS :指定每行文本的字段分隔符,缺省为空格或制表符,与 “-F”作用相同
OFS:输出时的分隔符
NF:当前处理的行的字段个数
NR:当前处理的行的行号(序数)
$0:当前处理的行的整行内容
$n:当前处理行的第n个字段(第n列)
FILENAME:被处理的文件名
RS:行分隔符。awk从文件上读取资料时,将根据RS的定义就把资料切割成许多条记录,而awk一次仅读入一条记录进行处理。预设值是\n
awk和if结合
awk和for结合
循环语句
echo
echo -n:不换行输出
echo -e:输出转义符
选项 | 作用 |
---|---|
\r | 光标移至行首,并且不换行 |
\s | 当前shell的名称,如bash |
\t | 插入Tab键,制表符 |
\n | 输出换行 |
\f | 换行,但光标仍停留在原处 |
\ | 表示插入"\"本身转义 |
\b | 表示退格 不显示前一个字符 |
\c | 抑制更多的输出或不换行 |
data:查看当前系统时间
-d—— 显示指定字符串所描述的时间,而非当前时间
%F——完整的日期格式
%T——24小时制的时间
for (已知循环次数)
执行机制:
依次将列表中的元素赋值给“变量名”; 每次赋值后即执行一次循环体; 直到列表中的元素耗尽,循环结束
while (不知道循环次数)
当命令判断为假时停止
until
当命令判断为真时停止
双重循环及跳出循环
break跳出单个循环后面加数字2则代表跳出两层循环
continue终止某次循环中的命令,但是不会完全终止命令