From 08539304cfd6c98b320b77ebf299be07920f5d06 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=86=AF=E9=94=90?= <12075075+feng-rui2570878950@user.noreply.gitee.com> Date: Tue, 4 Jun 2024 04:32:29 +0000 Subject: [PATCH] =?UTF-8?q?=E4=BD=9C=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 冯锐 <12075075+feng-rui2570878950@user.noreply.gitee.com> --- .../20240604 awk\347\254\224\350\256\260.md" | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 "34 \345\206\257\351\224\220/20240604 awk\347\254\224\350\256\260.md" diff --git "a/34 \345\206\257\351\224\220/20240604 awk\347\254\224\350\256\260.md" "b/34 \345\206\257\351\224\220/20240604 awk\347\254\224\350\256\260.md" new file mode 100644 index 0000000..c014754 --- /dev/null +++ "b/34 \345\206\257\351\224\220/20240604 awk\347\254\224\350\256\260.md" @@ -0,0 +1,48 @@ +## awk常见的内建变量: + +FS:列分割符。指定每行文本的字段分隔符,默认为空格或制表位。与"-F"作用相同 +NF:当前处理的行的字段个数。 +NR:当前处理的行的行号(序数)。 +$0:当前处理的行的整行内容。 +$n:当前处理行的第n个字段(第n列)。 +FILENAME:被处理的文件名。 +RS:行分隔符。awk从文件上读取资料时,将根据RS的定义把读取的资料切割成许多条记录,而awk一次仅读入一条记录 + +命令格式: + +awk 选项 ‘模式或条件 {操作}’ 文件 1 文件 2 … +awk -f 脚本文件 文件 1 文件 2 …条记录,以进行处理。预设值是’\n’ + +BEGIN模式表示,处理文本文件之前,需要先执行BEGIN模式指定动作;awk再处理指定的文本,之后再执行END模式中指定的动作,END{ }语句块中,往往会放入打印结果等语句 + +```bash +awk 'BEGIN { };{( ) }' 文件 +``` + +先设定条件或“模式”,再对符合条件的目标执行“动作”) + +```bash +awk ' pattern { action } ' 文件 +``` + +**-f:使用-f参数表示要执行的pattern和action都来自-f后接的文件** + +**-F :此参数指定用于awk分隔字符的字符awk -F ":" '{}' 文件** + +#### `awk是逐个读取每条记录的,默认情况也就是逐行读取的` + +##### `BEGIN和END是pattern的一种形式,BEGIN是开始先要执行,main作为中间处理部分,END作为处理文本数据后结束。BEGIN和END部分都只执行一次,而内部的语句则一次读取一条记录直到整个文件信息读完` + +###### \t:分隔符 + +#### 脚本→语句块: + +#### 1.开始语句块 + +#### 2.通用语句块: + +##### 1.模式 { }前 + +##### 2.动作 { } 里,满足后执行 + +#### 3.结尾语句块 \ No newline at end of file -- Gitee