linux下的awk程序在哪里编写,如何编写awk命令和脚本

02c8c0e0a09df1f97bd387f1d530469a.png

awk命令是处理或分析文本文件(尤其是按行和列组织的数据文件)的强大方法.

您可以从命令行运行简单的awk命令. 应该将更复杂的任务作为awk程序(所谓的awk脚本)写入文件.

0d84ef3017f813781a9b38c2086a4319.png

awk命令的基本格式如下:

awk'pattern {action}'输入文件>输出文件

这意味着: 占用输入文件的每一行;如果该行包含模式,则对该行应用操作,然后将结果行写入输出文件. 如果省略此模式,则该操作将应用于所有行. 例如:

linuxidc @ Ubuntu: 〜/ linuxidc.com $ awk'{打印$ 5}'linuxidc.txt> linuxmi.txt

此语句获取每行第五列中的元素,并将它们作为一行写入输出文件“ output.txt”. 变量“ $ 4”指的是第四列. 同样,您可以使用$ 1,$ 2,$ 3等访问第一,第二和第三列. 默认情况下,假定列由空格或制表符(所谓的空格)分隔. 因此,如果输入文件“ linuxidc.txt”包含以下行:

1,linuxidc com,Title 599,价格$ 9.30

2,ninhao linuxidc,标题761,价格为5.90美元

3,naike xie,第880名,价格9.10美元

4,Lady Gaga,标题198,价格1.30美元

5,约翰尼·卡什(Johnny Cash),标题582,价格$ 6.50

082837466.png

6,Elvis Presley,Title 370,价格$ 9.30

7,约翰·列侬(John Lennon),标题571,价格$ 8.90

8,迈克尔·杰克逊(Michael Jackson),标题673,价格7.50美元

9,linuxidc com,Title 585,价格$ 1.80

然后,该命令将以下行写入输出文件“ linuxmi.txt”:

linuxidc @ ubuntu: 〜/ linuxidc.com $ cat linuxmi.txt

599,

761,

880,

198,

582,

370,

571,

HDA0000698640960000011.gif

673,

585,

25c2e06015b36991925cb1e02c62a434.png

如果列分隔符不是空格或制表符(例如逗号),则可以在awk语句中如下指定:

linuxidc @ ubuntu: 〜/ linuxidc.com $ awk -Fawk脚本,'{print $ 3}'linuxidc.txt> linuxmi.txt

如果认为各列之间用逗号分隔,则将从每行的第三列中选择元素. 因此,在这种情况下,输出将是:

linuxidc @ ubuntu: 〜/ linuxidc.com $ cat linuxmi.txt

599标题

761标题

标题880

标题198

标题582

标题370

162431104.png

标题571

标题673

标题585

99992befdcd3fd96b9731165f00b1235.png

括号内的语句列表('{','}')称为块. 如果将条件表达式放在块的前面,则仅在条件为真时才执行块中的语句.

awk'$ 7 ==“ \ $ 7.30” {print $ 3}'linuxidc.txt

在这种情况下,条件是$ 7 ==“ \ $ 7.30”,这意味着列7中的元素等于$ 7.30. 美元符号前的反斜杠用于防止系统将$ 7解释为变量,而是从字面上理解美元符号.

因此,此awk语句在每行的第3列中打印出元素,在第7列中打印出“ $ 7.30”.

您还可以使用正则表达式作为条件. 例如:

linuxidc @ ubuntu: 〜/ linuxidc.com $ awk'$ 7 ==“ \ $ 7.30” {print $ 3}'linuxidc.txt

两个斜杠('/')之间的字符串是一个正则表达式. 在这种情况下,它只是字符串“ 30”. 这意味着,如果一行包含字符串“ 30”,则系统将在该行的第三列中打印该元素. 上例中的输出为:

linuxidc @ ubuntu: 〜/ linuxidc.com $ awk'/ 30 / {print $ 3}'linuxidc.txt

com

c0b8dbb34981d428f9fd8f41fe64fa6f.png

Gagaawk脚本,

普雷斯利,

8f50f6d48ea8ab5c124c35e9119eeb6f.png

如果表元素是数字,则awk可以对它们运行计算,如以下示例所示:

linuxidc @ ubuntu: 〜/ linuxidc.com $ awk'{print($ 2 * $ 3)+ $ 7}'linuxidc.com.txt

f93fda169bf4e902aeb6f3e3c6a60cbd.png

除了访问当前行元素的变量($ 1,$ 2等)之外,整行(行)还具有变量$ 0,而字段数则具有变量NF.

您还可以在此示例中定义新变量:

linuxidc @ ubuntu: 〜/ linuxidc.com $ awk'{sum = 0;为(col = 1; col

053b4b9b17d9a1919380beaa9a794777.png

这将计算并打印每行中所有元素的总和.

awk语句通常与sed命令结合使用.

有关Linux命令的更多信息,请参考Linux Command Collection的特殊页面

Linux公社的RSS地址:

本文将永久更新链接地址:

本文来自电脑杂谈,转载请注明本文网址:

http://www.pc-fly.com/a/jisuanjixue/article-287526-1.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/429314.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux中用截取一些信息,Linux如何使用cut命令截取文件信息

在Linux众多命令中,cut命令可用来截取文件信息,截取Linux字符串,下面将针对cut命令的用法做个详细介绍,感兴趣的朋友可以来学习下。cut命令有截取的意思,可从linux文件或者标准输入中读取内容并纵向截取所需信息列的一…

201521123057 《Java程序设计》第12周学习总结

1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容。 2. 书面作业 1.字符流与文本文件:使用 PrintWriter(写),BufferedReader(读) 将Student对象(属性:int id, String name,int age,doub…

tomcat 下载

点project 关闭防火墙才可以让别人访问自己 转载于:https://www.cnblogs.com/feathe/p/6853491.html

linux消息框架,远程处理器消息框架 - 基于Linux 简化 AMP 配置使其更方便更动态地分配资源...

核心的 rpmsg 框架起到开关的作用,根据消息中包含的目的地址将消息传送到相应端点。由于消息报头包含源地址,因此可在不同处理器之间建立专用连接。命名服务处理器可通过向 rpmsg 框架的命名服务发送消息,以动态宣布特定服务。命名服务功能本…

jQuery笔记——选择器

jQuery 最核心的组成部分就是:选择器引擎。它继承了 CSS 的语法,可以对 DOM 元 素的标签名、属性名、状态等进行快速准确的选择,并且不必担心浏览器的兼容性 常规选择器 根据id选择元素就是使用#,还有两种其他选择元素的方式&…

c语言实现NRZ编码,CSC1001-课后笔记

前言:为什么编写此文1. 根据费曼的学习方法Pretend to teach your topic to a classroom. Make sure youre able to explain the topic in simple terms. 假装你在教室里向学生解释这个主题,用尽量简单的词汇去描述它,力求学生能听懂。(听众…

《Java技术》第八次作业

《Java技术》第八次作业 (一)学习总结 1.用思维导图对本周的学习内容进行总结。 2.通过实验内容中的具体实例说明在执行executeUpdate()方法和executeQuery()方法中使用动态参数时,为什么要使用…

android 短信 aapp,谈谈App的统一跳转和ARouter

App中每次页面跳转,都需要调用统一导航, 它用的非常频繁, 有必要对它进行一下梳理. 让他能用起来简单方便, 同时能支持各种常用的跳转业务场景.一. Android跳转遇到的问题1.intent-filter跳转不好管理Intent intent new Intent();intent.setAction(Intent.ACTION_SENDTO);inte…

android 自定义spnner弹出框,PopupWindow,ListView实现自定义Spinner

最终的效果图,点击86弹出popup这里写图片描述PupupWindow的布局文件为一个ListView 作为pupup的主体内容android:orientation"vertical"android:layout_width"match_parent"android:layout_height"match_parent">android:id"id/register…

hdu 6026 Deleting Edges(最短路计数)

题目链接:hdu 6026 Deleting Edges 题意: 给你n个点,和一个邻接矩阵,非0表示有边,0表示没边。 现在让你删一些边,构成一棵树,使得每个点到0这个点的距离为没删边之前的最短路。 问有多少棵这样的…

Xamarin XAML语言教程构建进度条ProgressBar

Xamarin XAML语言教程构建进度条ProgressBar Xamarin XAML语言教程构建进度条ProgressBar,ProgressBar被称为进度条,它类似于没有滑块的滑块控件。进度条总是水平放置的。本节将讲解如何使用进度条。注意:进度条在各个平台下基本相同&#xf…

mac删除android sd卡,如何从mac完全删除android及其所有文件?

前一段时间我试图让科尔多瓦工作,但android模拟器永远不会启动。它只是挂着一个黑色的屏幕。如何从mac完全删除android及其所有文件?我原来是用brew install android-sdk安装的。然后我读了一个糟糕的地方。所以我已经删除它并安装了Android Studio。无论…

201521123023《Java程序设计》第13周学习总结

1. 本周学习总结 (1)网络中为了进行数据交换(通信)而建立的规则、标准或约定(语义语法规则)称之为协议(常用http/ftp) (2)大致熟悉了TCP协议,但是UDP怎么辣么蓝&#xff…

QML与C++交互:登陆界面设计

QML与C交互:登陆界面设计 本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明. 环境: 主机:WIN7 开发环境:Qt5.2.1 说明: QML设计前台界面,C后台负责逻辑 效果图: 源码: 前台qml文件 login.qml /******************************************************…

html怎么在字体中加波浪线,CSS3实现文字波浪线效果

前言css的设计之巧妙,实现之精妙,细细寻味,其妙非凡,妙不可言。这波浪线,取巧的运用了linear-gradient属性,合角度、颜色、位置于一体,配合background-size,background-repeat&#…

NET Core 指令启动

ASP.NET Core 是新一代的 ASP.NET,早期称为 ASP.NET vNext,并且在推出初期命名为ASP.NET 5,但随着 .NET Core 的成熟,以及 ASP.NET 5的命名会使得外界将它视为 ASP.NET 的升级版,但它其实是新一代从头开始打造的 ASP.N…

html文本显示状态代码中,HTML文本显示状态代码中,表示?

文本如何大小判别偏心受压剪力墙的。能源能量然资提供的自是指源,显示如(,显示能、能、能、能、、热等的械能是机生物原子光能化学总称,不可能源然界的一可再生能于自源可源和再生分为存在次能。状态中表并发儿麻体温生的婴幼易发间低醉期症(…

[LeetCode]Distinct Subsequences,解题报告

题目 Given a string S and a string T, count the number of distinct subsequences of T in S.A subsequence of a string is a new string which is formed from the original string by deleting some (can be none) of the characters without disturbing the relative po…

2021年河南高考成绩排名查询一分一段表,2018河南高考一分一段统计表,查排名必备!...

原标题:2018河南高考一分一段统计表,查排名必备!:点击这里信息省招办公布了2018年普通高招分数段统计表,对每个分数段有多少考生进行了详细统计。你考了多少分?处在哪个位置?快来看看&#xff0…

实用的css样式

当字数超过一行时,可以用...代替 white-space: nowrap; overflow: hidden; text-overflow: ellipsis; 这三个样式同时使用才有效,也可以去掉white-space样式,分两行 转载于:https://www.cnblogs.com/maggie-php/p/6906462.html