# Linux 命令兵器谱
兵器之于武侠, 好比命令之于 Linux - by 代码会说话
## 三剑客之上古神器 Awk
> AWK was created at Bell Labs in the 1970s,[3] and its name is derived from the surnames of its authors—Alfred Aho, Peter Weinberger, and Brian Kernighan.
> auk
1. 把 Awk 当简化的用于处理或统计文本表格,配置的特定 C 语言来理解.
2. Awk 核心逻辑是文本行记录处理,行列分割处理.
Linux 上 `awk` 一般是指 gawk 也就是 GNU Awk. 功能更为丰富.
备注:
1. 简单上手,够用即可.
2. 复杂逻辑推荐使用 Python 等工具.
```python3
begin_process()
for file in files:
for line in file:
process_line(line, line.split())
end_process()
```
### 基本语法及运行说明
1. C 类语法.
```
{
print "Hello World";
}
```
2. `-f`
3. `#!` SHELLBANG
### 记录行有关的列表
- `$0` 表示当前匹配的记录行
- `$1` 表示当前记录行的第 1 列数据.
- `$2` 表示当前记录行的第 2 列数据.
- `$3` 表示当前记录行的第 3 列数据.
- `$<N>` 以此类推,表示当前记录行的第 N 列数据.
### 内置全局变量
- `FS` 列分隔符,支持正则. (也可用命令行选项 `-F` 指定.)
- `NF` 当前行记录的列数.
- `NR` 当前行号.
- `FNR` 当前文件的当前行号
- `FILENAME` 当前文件名
- `RS` 行分割符(默认是换行符)
- `OFS` 用于输出的列分隔符
- `ORS` 用于输出的记录分隔符(默认是换行符)
- `OFMT` 数字的输出格式(默认是 %.6g)
- `CONVFMT` 数字的转换格式(默认是 %.6g)
- `SUBSEP` 分割多下标(默认是 034)
- `ARGC` 参数个数
- `ARGV` 参数数组,可修改
- `ENVIRON` 环境变量,下标是变量名
### 内置函数
- `rand` 返回 (0,1) 之间的随机数
- `srand` 设置随机数种子,返回之前的种子.
- `int` 截断一个整型值
- `length` 返回参数作为字符串的长度,(无参则以 %0 为参数)
- `substr(s,m,n)` n 表示长度,m 表示起始位置(注意:从 1 开始.)
- `index(s,t)` 查找`t` 出现的索引位置,0 表示没有出现 .
- `match(s,r)` 查找匹配正则表达式 `r` 的出现开始位置,返回 0 表示未找到,`RSTART` 会被设置为匹配的起始位置,`RLENGTH` 表示匹配的长度.
- `split(s,a,fs)` 将字符串`s` 分割成数组元素 `a[1],a[2],...,a[n]`然后返回 n.
如果 `fs` 参数为空的话,则使用全局的 `FS` 变量.
- `sub(r,t,s)` 将`s`中第一次匹配 `r` 正则表达式的内容替换为 `t`.
- `gsub(r,t,s)` 将`s`中所有匹配 `r` 正则表达式的内容替换为 `t`.
- `tolower(str)` 转小写.
- `toupper(str)` 转大写.
- `sprintf(fmt,expr, ...)` 类似于 C 语言中 `printf`
- `system(cmd)` 执行系统命令并返回退出状态.
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
兵器之于武侠,_好比命令之于Linux_linux_weapons.zip (11个子文件)
linux_weapons-master
LICENSE 34KB
show_conf.awk 55B
awk_demos
calc.awk 122B
conf_to_json.awk 167B
show_conf.awk 86B
extract_ips.awk 77B
ipconfig.txt 2KB
show_user.awk 108B
hello.awk 37B
.gitignore 430B
README.md 3KB
共 11 条
- 1
资源评论
好家伙VCC
- 粉丝: 2147
- 资源: 9145
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 带有 OpenGL 后端的 V 2D,3D 图形库(DirectX、Vulkan、Metal 即将推出).zip
- 互联网 Java 工程师进阶知识完全扫盲:涵盖高并发、分布式、高可用、微服务、海量数据处理等领域知识
- 带有 Microsoft DirectX 着色器编译器 (dxil 和 spirv) 的 Docker 映像.zip
- jsp登录界面 mysql增删改查操作
- 免费各种文件类型转换完美无水印jar包,导入即可使用
- content_1732693070233.pdf
- linkage-mapper3.0
- 尝试将 DirectX 引入 Common Lisp.zip
- 吃豆人博物馆(PC 版)模式,可像街机版一样玩吃豆人大逃杀 .zip
- mqtt客户端调试助手
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功