awk命令应用

article/2025/9/14 4:12:02

记录:353

场景:在CentOS 7.9操作系统上,使用awk文本处理工具处理文本;使用awk、cat和grep搭配使用处理文本;使用awk直接处理文本;使用shell脚本调用awk脚本处理文本。

版本:

操作系统:CentOS 7.9

名词:

awk:一个优良的文本处理工具,Linux及Unix环境中功能最强大的数据处理引擎之一。

awk: 一种编程语言,用于在 linux/unix 下对文本和数据进行处理。数据可以来自标准输入、一个或多个文件,或其它命令的输出。

1.命令应用

1.1awk处理第1个文本(默认空格分割)

(1)命令

命令:cat /home/work/aintro.txt | grep -vE "#|^$"| awk '{print $1,$2,$3,$4}'

(2)解析

使用cat命令读取文件内容。

使用grep命令匹配内容,grep -vE "#|^$",是表示匹配不是以#号开头的字符串。-v,是反向匹配;-E是扩展正则表达式;"#|^$",正则表达式是匹配以#号开头的字符串;"#"是以#号开头的字符串,"^"是匹配字符串开头,"$"是匹配字符串结尾。'{print $1,$2,$3,$4}'中的两个单引号是引用代码块。print是输出。

使用awk逐行处理文本,默认使用空格分割字符串。"$1,$2,$3,$4"中$1是代表取分割后第1个字符,$2是取分割后第2个字符,逐级类推。如果是$0就打印出整行内容。

(3)文本内容和文本处理结果

1.2awk处理第2个文本(-F指定分割符号)

(1)命令

命令:cat /home/work/bintro.txt | grep -vE "#|^$"| awk -F":" '{print $1,$2,$3,$4}'

命令:cat /home/work/bintro.txt | grep -vE "#|^$"| awk -F: '{print $1,$2,$3,$4}'

(2)解析

使用cat命令读取文件内容。

使用grep命令匹配内容。

使用awk逐行处理文本,-F":"或-F:,指定文本的分割符号为":"号。

(3)文本内容和文本处理结果

1.3awk处理第3个文本

(1)命令

命令:awk -F":" '{print $1,$2,$3,$4}'  /home/work/cintro.txt

命令:awk -F: '{print $1,$2,$3,$4}'  /home/work/cintro.txt

(2)解析

使用awk逐行处理文本,-F":"或-F:,指定文本的分割符号为":"号。

(3)文本内容和文本处理结果

1.4awk处理第4个文本

(1)命令

命令:awk -F: '{print $1,$2,$3,$4}' /home/work/dintro.txt >>/home/work/dintro-result.txt

(2)解析

使用awk逐行处理文本,-F:,指定文本的分割符号为":"号。处理/home/work/dintro.txt文件内容;结果输出到/home/work/dintro-result.txt文件。

(3)文本内容和文本处理结果

1.5awk处理第5个文本

(1)命令

命令:awk -f /home/work/process.awk /home/work/eintro.txt >>/home/work/eintro-result.txt

(2)解析

使用awk逐行处理文本,-F:,指定文本的分割符号为":"号。

-f /home/work/process.awk,-f指定使用process.awk文件的脚本。

处理/home/work/eintro.txt文件内容;结果输出到/home/work/eintro-result.txt文件。

(3)文本内容和文本处理结果

1.6awk处理第6个文本

(1)命令

执行shell命令:/home/work/process.sh

(2)解析

脚本调用逻辑:

执行shell脚本/home/work/process.sh;

shell脚本调用/home/work/process.awk脚本;

awk -f处理/home/work/fintro.txt文件内容;

>>将处理结果输出到/home/work/fintro-result.txt文件。

(3)文本内容和文本处理结果

图片版:

文字版:

//1. fintro.txt文本
Zhejiang:is:a:province:in:China.
Hangzhou:is:a:city:in:Zj.
Xihu:is:a:district:in:Hz.//2. process.awk脚本
BEGIN{
FS=":"
}
{print $1,$2,$3,$4}// 3. process.sh脚本
#!/bin/bash
SRC_FILE=/home/work/fintro.txt
RESULT_FILE=/home/work/fintro-result.txt
AWK_SCRIPT_FILE=/home/work/process.awk
awk -f $AWK_SCRIPT_FILE $SRC_FILE >> $RESULT_FILE// 4. fintro-result.txt处理结果文本
Zhejiang is a province
Hangzhou is a city
Xihu is a district

2.命令帮助手册

命令:awk --help

解析:查看awk支持的全部命令和选项,在实际工作中,查看这个手册应该是必备之选。

Usage: awk [POSIX or GNU style options] -f progfile [--] file ...
Usage: awk [POSIX or GNU style options] [--] 'program' file ...
POSIX options:		GNU long options: (standard)-f progfile		--file=progfile-F fs			--field-separator=fs-v var=val		--assign=var=val
Short options:		GNU long options: (extensions)-b			--characters-as-bytes-c			--traditional-C			--copyright-d[file]		--dump-variables[=file]-e 'program-text'	--source='program-text'-E file			--exec=file-g			--gen-pot-h			--help-L [fatal]		--lint[=fatal]-n			--non-decimal-data-N			--use-lc-numeric-O			--optimize-p[file]		--profile[=file]-P			--posix-r			--re-interval-S			--sandbox-t			--lint-old-V			--versionTo report bugs, see node `Bugs' in `gawk.info', which is
section `Reporting Problems and Bugs' in the printed version.gawk is a pattern scanning and processing language.
By default it reads standard input and writes standard output.Examples:gawk '{ sum += $1 }; END { print sum }' filegawk -F: '{ print $1 }' /etc/passwd

以上,感谢。

2022年11月29日


http://chatgpt.dhexx.cn/article/xJnTEwYr.shtml

相关文章

概要设计之功能模块

功能模块描述 所谓功能模块,从字面上理解,就是以功能来进行划分模块。 接着,根据功能特性多少,决定是否要划分“子功能模块”。 这里就容易出现一个问题,如何去确定每个功能的界限呢,以及很多人会拿用户角…

系统架构图编写(概要设计)

系统架构图编写(概要设计) 应用架构图、技术架构图、业务架构图定义以及到底怎么画好架构图? 常见的数据库架构设计方案? 业务架构的定义、特性和方法 架构图之间的关系 业务架构图 业务架构,是IT架构的基础。 是从业…

概要设计、详细设计:概念、方法、实践步骤

完整软件开发流程: 需求分析、概要设计、详细设计 一 1. 概念、方法、实践步骤 设计是指根据需求开发的结果,对产品的技术实现由粗到细进行设计的过程。根据设计粒度和目的的不同可以将设计分为概要设计、详细设计等阶段以便于管理和确保质量。设计内容…

概要设计与详细设计如何编写

撰写的设计文档主要分为:总体概要设计文档 详细设计文档,后简称为“概设”“详设”。 总设和详设都应该包含的部分: (1) 需求:一般以产品的语言描述,这一块可以拷贝产品需求文档中的story li…

软件项目总体设计

软件项目总体设计 目录 1.导言 1 1.1目的 1 1.2范围 1 1.3参考资料 2 2.项目设计原则简介 2 3.功能模块设计 2 3.1功能模块设计总述 2 3.2 客户端子系统模块设计 4 3.2.1 模块 CM1 :静态页面 4 3.2.2 模块 CM2:系统登录 5 3.2.3 模块 CM3 :注…

软件概要设计的过程与任务

在完成对软件系统的需求分析之后,接下来需要进行的是软件系统的概要设计。一般说来,对于较大规模的软件项目,软件设计往往被分成两个阶段进行。首先是前期概要设计,用于确定软件系统的基本框架;然后是在概要设计基础上…

软件工程技术--第四章 概要设计

第四章 概要设计 4.1 软件设计概述 4.1.1 软件设计的概念与重要性 ​ 软件设计是软件工程的重要阶段,是一个将软件需求转换为软件表示的过程。软件设计的基本目标是用比较抽象概括的方式确定目标系统如何完成预定的任务,即确定系统的物理模型&#xff0…

ios 新建项目关于Main.storyboard的处理

使用xcode新建新建项目时,都会带一个main.storyboard的主界面。如果你不进行代码控制,默认APP启动会加载main.storyboard这个界面。怎么使用这个界面来加载这里就不在介绍了,这里只说用代码加载主页,不使用main.storyboard时&…

storyboard 使用

Storyboard是一项令人兴奋的功能,在iOS5中首次推出,在开发app的界面时可以极大地节省时间。 如下图所示,这就是一个完整的应用的storyboard,接下来我们要学习如何通过这种方式创建应用。 现在你可能还不是很精确地知道我们的应用可…

ios storyboard简单用法

使用xcode5中的storyboard,做个简单的界面,第一次用简直一头雾水,摸索下来感觉也蛮方便的。 从左到右,从上到下,控件依次是:UITextFiled,UIButton, UILabel, UIPickerVi…

iOS开发18:Storyboard的简单使用

之前做的例子,我们经常会用到.xib文件,在其中我们可以进行界面的设计。不过如果想切换视图,我们就得自己写很多代码。自从苹果推出了Storyboard,我们可以在一个编辑区域设计多个视图,并通过可视化的方法进行各个视图之…

如何在xcode中使用storyboard

StoryBoard是iOS 5的新特征,目的是代替历史悠久的NIB/XIB,对于已经习惯了xib文件的孩子们来说,StoryBoard还不是那么熟悉。经过两天的研究,有了一些心得,在此分享。 一、如何使用storyboard简单实现Push页面&#xff…

Storyboard Reference

在某些情况下,你开发的应用可能包含有各种各样的复杂界面,如果你使用Storyboard来管理这些界面,通常你会将这些界面按照相应的逻辑分成许多子模块,放在不同的storyboard里,比如注册相关的放到Register.Storyboard&…

storyboard使用教程

Storyboard是最先在iOS 5引入的一项振奋人心的特性,大幅缩减构建App用户界面所需的时间。 要介绍Storyboard是什么,我打算从这张图讲起。下面是您将会在本教程中构建的Storyboard: image 或许你现在并不清楚这个App是用来做什么的&#xff0c…

关于storyboard的使用入门

 在iOS5以前,一直使用纯代码进行处理界面,尽管能够严格数据信息,但是操作上相比storyboards操作效率低,现就这个时尚的storyboards进行简要学习总结。 一 创建storyboards。 创建storyboards的方式有多种…

Storyboard入门

Storyboard 是iOS 5 中令人兴奋的一个新特性,他将为你在创建用户界面上节省很多时间。 那么究竟什么是Storyboard呢?我将用一幅图片来向你展示: 下面这个就是本教程中即将用到的Storyboard。 你或许不能精确的知道这个应用是做什么的,但是你可…

IOS开发入门之五——storyboard的使用(上)

需要iOS开发视频资料可以加我微信: 1914532832 验证信息请注明:IOS开发 上节介绍了纯代码开发,就是所有页面全部用代码来写,纯代码开发缺点就是比较慢的,而且很不直观,需要在App运行后才能看到页面效果。这节介绍重点…

IOS开发之——更换Storyboard

一 概述 新建项目的默认面板为Main.storyboard,用于向界面中添加控件并显示向项目中添加新的storyboard,并替换Main.storyboard 二 添加新的Storyboard 在Main.storyboard上右键,选择New File 在User Interface 分类下,选择Stor…

使用storyboard

story board是xcode4.2新增的一个特性,它将原有工程中的所有xib文件集成在一起,用拖拽的方式建立2个viewController之间的跳转关系,使得整个程序的UI跳转逻辑清楚明了。使用storyboard后,界面相关的代码编写将更少。 简单说…

Storyboard使用心得

最近接触IOS7新特性,之前项目都是使用xib,没有使用过storyboard,今天就研究下。首先,说下storyboard优缺点,优点:a). 流程结构清晰b). 有内置的segue支持c). 方便的实例化ViewController缺点:a). 所有的Vie…