awk命令应用
创始人
2024-03-01 13:18:32
0

记录: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日

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
苏州离哪个飞机场近(苏州离哪个... 本篇文章极速百科小编给大家谈谈苏州离哪个飞机场近,以及苏州离哪个飞机场近点对应的知识点,希望对各位有...
客厅放八骏马摆件可以吗(家里摆... 今天给各位分享客厅放八骏马摆件可以吗的知识,其中也会对家里摆八骏马摆件好吗进行解释,如果能碰巧解决你...