您现在的位置是:主页 > Web前端技术 > Web前端技术

awk该怎么用开发技术

IDCBT2022-01-10服务器技术人已围观

简介这篇文章跟大家分析一下“awk该怎么用”。内容详细易懂,对“awk该怎么用”感兴趣的朋友可以跟着小编的思路慢慢深入来阅读一下,希望阅读后能够对大家有所帮助。下面跟着小编一

这篇文章跟大家分析一下“awk该怎么用”。内容详细易懂,对“awk该怎么用”感兴趣的朋友可以跟着小编的思路慢慢深入来阅读一下,希望阅读后能够对大家有所帮助。下面跟着小编一起深入学习“awk该怎么用”的知识吧。

awk   打印文本内容

awk:           Aho, Kernighan and Weinberger

报告生成器,以特定的条件查找文本内容,再以特定的格式显示出来

awk命令的格式:

# awk [option] 'script' file1 file2 ...

# awk [option] 'PATTERN{action}' file1 file2 ...

PATTERN:

用文本字符与正则表达式元字符描述的条件,可以省略不写

action:

print

printf 指定输出项的格式;格式必须写

option选项:

-F指定文本分割符

awk处理文本机制:

awk将符合PATTERN的文本逐行取出,并按照指定的分割符(默认为空白,

通过-F选项可以指定分割符)进行分割,然后将分割后的每段按照特定的格式输出 

awk的输出:

一、print

print的使用格式:

print item1,item2,....

注意:

1、各项目间使用逗号分隔开,而输出时以空白字符作为分隔

2、输出的item可以为字符串、数值、当前的记录的字段($1)、变量或者awk的表达式;数值会先转换成字符串,然后输出

3、print命令后面的item可以省略,此时其功能相当于print $0($0代表未分割的整行文本内容),因此,如果想输出空白行,则需要使用print "";

以空白分割,显示文本中的第1段及第2段内容

# awk '{print $1,$2}' test.txt 

this is

[root@shell ~]# df -hT | sed '1d' | awk '{print "Disk name: ", $1,"Mount Point: ", $7, "Total Size: ", $3, "Free size ", $5}'

示例:

输出3行内容

# awk 'BEGIN{print "line one\nline two\nline three"}'

line one

line two

line three

输出/etc/passwd中的用户名及其uid

# awk -F: '{print $1,$3}' /etc/passwd 

awk变量

1、awk内置变量之记录变量

FS: 指定读取文本时,所使用的行分隔符,默认为空白字符;相当于awk的-F选项 

OFS:指定输出的分隔符,默认为空白字符;

[root@localhost ~]# head -n 1 /etc/passwd | awk -F: '{print $1,$7}'

root /bin/bash

[root@localhost ~]# 

[root@localhost ~]# head -n 1 /etc/passwd | awk 'BEGIN{FS=":"}{print $1,$7}'

root /bin/bash

[root@localhost ~]# head -n 1 /etc/passwd | awk -F: '{print $1,$7}'

root /bin/bash

[root@localhost ~]# head -n 1 /etc/passwd | awk -F: 'BEGIN{OFS="---"}{print $1,$7}'

root---/bin/bash

[root@localhost ~]# 

RS: 指定读取文本时,所使用的换行符(指定以什么字符作为换行符);默认为换行符

标签:

很赞哦! ()

本栏推荐