当前位置:首页 > 数码 > Linux中Awk命令的五个常见用法 (linux中~代表什么)

Linux中Awk命令的五个常见用法 (linux中~代表什么)

admin5个月前 (04-30)数码12

Awk 是一种强大的文本处理工具,它可以从文件或标准输入中读取数据,对数据进行处理,并生成格式化的输出。以下是 Linux 中 awk 命令的五个常见用法,每个用法都附带有代码和输出示例。

用法 1:从文件中提取数据

awk '{print $1, $2}' /etc/passwd
  

该命令将从 /etc/passwd 文件中提取第一和第二列,并打印到标准输出。输出如下:

root x
bin x
daemon x
...
  

用法 2:对数据进行过滤

awk '$1 == "root"' /etc/passwd
  

该命令将过滤 /etc/passwd 文件中的行,仅打印第一列等于 "root" 的行。输出如下:

root x
  

用法 3:对数据进行数学运算

awk '{print $1, $2, $3  $4}' /etc/passwd
  

该命令将从 /etc/passwd 文件中提取第一、第二、第三和第四列,并将第三列乘以第四列。输出如下:

root x 0
bin x 0
daemon x 0
...
  

用法 4:连接数据

awk '{print $1, $2, ":", $3, $4}' /etc/passwd
  

该命令将从 /etc/passwd 文件中提取第一、第二、第三和第四列,并用冒号分隔。输出如下:

root x:0:0
bin x:1:1
daemon x:2:2
...
  

用法 5:创建报告

awk 'BEGIN {print "User", "UID", "GID", "Home Directory"} {print $1, $3, $4, $6}' /etc/passwd
  

该命令将创建一个报告,其中包含用户名、UID、GID 和主目录。输出如下:

User UID GID Home Directory
root 0 0 /root
bin 1 1 /bin
daemon 2 2 /usr/sbin
...
  
Linux中Awk命令的五个常见用法

结论

Awk 是一种功能强大的文本处理工具,可以用于各种任务。本文介绍了 Linux 中 awk 命令的五个常见用法。通过使用这些用法,您可以轻松地从文件中提取数据、过滤数据、对数据进行数学运算、连接数据以及创建报告。

linux的awk命令大全linux的awk命令

linux下有没有对一列数字进行求和的命令?

对第一列数字求和:awk{a+=$1}END{printa}

对第二列数字求和:awk{a+=$2}END{printa}

通过管道送过去:echoXXX|awk

或者awk读取文件

linux如何批量提取文件最后几行?

可以使用awk命令写一个循环,然后遍历所有文件,定位每个文件最后几行,重定向到新文件就可以了!

linux如何以第一第二列为名建文件夹?

Linux可以以文件的第一列和第二列为名建立文件夹的,具体命令是:

awk{print$1,$2}filename|xargsmkdir-p

linux命令三剑客详解?

Linux三剑客grep、sed、awk

grep:Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。grep全称是GlobalRegularExpressionPrint,表示全局正则表达式版本,它的使用权限是所有用户。

sed是一种流编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(patternspace),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。

AWK是一种处理文本文件的语言。它将文件作为记录序列处理。在一般情况下,文件内容的每行都是一个记录。

linux命令的解释?

表示管道,将前一个命令的输出传递到下一个,grep用来显示含有后面参数字符的行,第一个命令的意思就是执行“ps-e”把结果中的含有crond的行显示出来。awk命令就复杂了,这里的意思是把前面的结果的第二列和第三列打印出来,中间的“”是在第二列和第三列中加入一个空格。

linux awk命令

一、awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。

二. awk命令格式和选项2.1 awk的语法有两种形式1. 命令行方式 awk [-F field-separator] commands input-file(s) 其中,commands是真正awk命令,[-F域分隔符]是可选的。input-file(s)是待处理的文件。 在awk中,文件的每一行中,由域分隔符分开的每一项称为一个域。通常,在不指名-F域分隔符的情况下,默认的域分隔符是空格。 2. 将所有的awk命令插入一个单独文件,然后调用: awk -f awk-script-file input-file(s) 其中,-f选项加载awk-script-file中的awk脚本,input-file(s)跟上面的是一样的。2.2 命令选项(1)-F fs or --field-separator fs :指定输入文件折分隔符,fs是一个字符串或者是一个正则表达式,如-F:。(2)-v var=value or --asign var=value :赋值一个用户定义变量。(3)-f scripfile or --file scriptfile :从脚本文件中读取awk命令。(4)-mf nnn and -mr nnn :对nnn值设置内在限制,-mf选项限制分配给nnn的最大块数目;-mr选项限制记录的最大数目。这两个功能是Bell实验室版awk的扩展功能,在标准awk中不适用。(5)-W compact or --compat, -W traditional or --traditional :在兼容模式下运行awk。所以gawk的行为和标准的awk完全一样,所有的awk扩展都被忽略。(6)-W copyleft or --copyleft, -W copyright or --copyright :打印简短的版权信息。(7)-W help or --help, -W usage or --usage :打印全部awk选项和每个选项的简短说明。(8)-W lint or --lint :打印不能向传统unix平台移植的结构的警告。(9)-W lint-old or --lint-old :打印关于不能向传统unix平台移植的结构的警告。(10)-W posix :打开兼容模式。但有以下限制,不识别:/x、函数关键字、func、换码序列以及当fs是一个空格时,将新行作为一个域分隔符;操作符**和**=不能代替^和^=;fflush无效。(11)-W re-interval or --re-inerval :允许间隔正则表达式的使用,参考(grep中的Posix字符类),如括号表达式[[:alpha:]]。(12)-W source program-text or --source program-text :使用program-text作为源代码,可与-f命令混用。(13)-W version or --version :打印bug报告信息的版本。三. 使用方法#awk {pattern + action} {filenames}尽管操作可能会很复杂,但语法总是这样,其中 pattern 表示 AWK 在数据中查找的内容,而 action 是在找到匹配内容时所执行的一系列命令。花括号({})不需要在程序中始终出现,但它们用于根据特定的模式对一系列指令进行分组。 pattern就是要表示的正则表达式,用斜杠括起来。awk语言的最基本功能是在文件或者字符串中基于指定规则浏览和抽取信息,awk抽取信息后,才能进行其他文本操作。完整的awk脚本通常用来格式化文本文件中的信息。通常,awk是以文件的一行为处理单位的。awk每接收文件的一行,然后执行相应的命令,来处理文本。四. 模式和操作awk脚本是由模式和操作组成的: pattern {action} 如$ awk /root/ test,或$ awk $3 < 100 test。两者是可选的,如果没有模式,则action应用到全部记录,如果没有action,则输出匹配全部记录。默认情况下,每一个输入行都是一条记录,但用户可通过RS变量指定不同的分隔符进行分隔。4.1. 模式模式可以是以下任意一个:(1)正则表达式:使用通配符的扩展集。(2)关系表达式:可以用下面运算符表中的关系运算符进行操作,可以是字符(3)串或数字的比较,如$2>%1选择第二个字段比第一个字段长的行。(4)模式匹配表达式:用运算符~(匹配)和~!(不匹配)。(5)模式,模式:指定一个行的范围。该语法不能包括BEGIN和END模式。(6)BEGIN:让用户指定在第一条输入记录被处理之前所发生的动作,通常可在这里设置全局变量。(7)END:让用户在最后一条输入记录被读取之后发生的动作。4.2. 操作操作由一人或多个命令、函数、表达式组成,之间由换行符或分号隔开,并位于大括号内。主要有四部份:(1)变量或数组赋值(2)输出命令(3)内置函数(4)控制流命令

五. awk的环境变量

六. awk运算符

七. 记录和域7.1. 记录 awk把每一个以换行符结束的行称为一个记录。 记录分隔符:默认的输入和输出的分隔符都是回车,保存在内建变量ORS和RS中。 $0变量:它指的是整条记录。如$ awk {print $0} test将输出test文件中的所有记录。 变量NR:一个计数器,每处理完一条记录,NR的值就增加1。 如$ awk {print NR,$0} test将输出test文件中所有记录,并在记录前显示记录号。7.2. 域记录中每个单词称做“域”,默认情况下以空格或tab分隔。awk可跟踪域的个数,并在内建变量NF中保存该值。如$ awk {print $1,$3} test将打印test文件中第一和第三个以空格分开的列(域)。7.3. 域分隔符 内建变量FS保存输入域分隔符的值,默认是空格或tab。我们可以通过-F命令行选项修改FS的值。如$ awk -F: {print $1,$5} test将打印以冒号为分隔符的第一,第五列的内容。 可以同时使用多个域分隔符,这时应该把分隔符写成放到方括号中,如$awk -F[:/t] {print $1,$3} test,表示以空格、冒号和tab作为分隔符。 输出域的分隔符默认是一个空格,保存在OFS中。如$ awk -F: {print $1,$5} test,$1和$5间的逗号就是OFS的值。八. 匹配操作符(~) 用来在记录或者域内匹配正则表达式。如$ awk $1 ~/^root/ test将显示test文件第一列中以root开头的行。九. 比较表达式 conditional expression1 ? expression2: expression3, 例如: $ awk {max = {$1 > $3} ? $1: $3: print max} test。如果第一个域大于第三个域,$1就赋值给max,否则$3就赋值给max。 $ awk $1 + $2 < 100 test。如果第一和第二个域相加大于100,则打印这些行。 $ awk $1 > 5 && $2 < 10 test,如果第一个域大于5,并且第二个域小于10,则打印这些行。十. 范围模板范围模板匹配从第一个模板的第一次出现到第二个模板的第一次出现之间所有行。如果有一个模板没出现,则匹配到开头或末尾。如$ awk /root/,/mysql/ test将显示root第一次出现到mysql第一次出现之间的所有行。

免责声明:本文转载或采集自网络,版权归原作者所有。本网站刊发此文旨在传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及版权、内容等问题,请联系本网,我们将在第一时间删除。同时,本网站不对所刊发内容的准确性、真实性、完整性、及时性、原创性等进行保证,请读者仅作参考,并请自行核实相关内容。对于因使用或依赖本文内容所产生的任何直接或间接损失,本网站不承担任何责任。

标签: Linux

“Linux中Awk命令的五个常见用法 (linux中~代表什么)” 的相关文章

系统中内存管理和优化指南-有效处理内存问题-Linux (系统内存管理)

系统中内存管理和优化指南-有效处理内存问题-Linux (系统内存管理)

本文将详细介绍内存管理和优化的几个高级技巧,帮助系统管理员和开发人员更好地优化 Linux 系统的内存使用情况,提高系统性能和稳定性。 1. 页面置换策略 Linux 使用页面置换算法...

经常使用-grep-awk把握日志监控-中日志剖析神器-ail-Linux-和 (经常使用公共卫生间引起尿路感染)

经常使用-grep-awk把握日志监控-中日志剖析神器-ail-Linux-和 (经常使用公共卫生间引起尿路感染)

一个日志查问剖析的例子 名目颁布上线后,接上去须要做什么?开Party,庆贺名目上线。但是Party开到一半,服务运转出了点疑问。指导要你马上考查要素并给出适合的处置方法。名目才刚上线,日志...

嵌入式Linux系统开发 (嵌入式linux)

嵌入式Linux系统开发 (嵌入式linux)

什么是嵌入式系统 嵌入式系统是一种以微处理器为核心的、专门针对某一特定应用设计的计算机系统。它具有体积小、功耗低、成本低、稳定性高、抗干扰能力强等特点。 嵌入式系统操作 嵌入式系...

可视化管理神器-运维效率翻倍-VisualPlus-Linux (可视化管理神器怎么用)

可视化管理神器-运维效率翻倍-VisualPlus-Linux (可视化管理神器怎么用)

简介 Linux是一种功能强大且广泛使用的操作系统,服务器的运维管理主要依赖命令行操作。对于普通人来说,这种方式晦涩难懂,相对复杂。而1Panel是一款开源的Linux可视化管理项目,旨在为...

Linux子系统概览

Linux子系统概览

Linux操作系统是一个模块化的系统,由多个子系统组成。这些子系统协同工作,使Linux能够执行各种任务。了解Linux的子系统有助于更好地理解整个操作系统的运作机制。 内核子系统...

新特性和改进-Linux-6.9 (新特性和改进的区别)

新特性和改进-Linux-6.9 (新特性和改进的区别)

Linus Torvalds has announced the release of Linux 6.9-rc1, the first Release Candidate (RC) for th...

和开源的六大趋势预测-年-2024-Linux (开源有哪些)

和开源的六大趋势预测-年-2024-Linux (开源有哪些)

2024 年的钟声已经敲响,我们有必要展望一下将塑造本年度的各种潮流。我们不能预见未来,所以无法精确预知将会发生什么,但根据目前观察到的动向,我们可以进行一些预测。以下是我们对开源发展方向的预测。...

Bash-对-感到厌倦-Linux中更改默认-教你如何在-Shell

Bash-对-感到厌倦-Linux中更改默认-教你如何在-Shell

Bash 并不是您唯一的 Shell 选择。还有许多其他 Shell 可供使用,每个 Shell 都有一些独特的特性。这些 Shell 包括 Zsh、Fish、Ksh 和 Xonsh。您可以在系统...