如何编写awk命令和脚本

电脑杂谈  发布时间:2020-07-20 21:23:40  来源:网络整理

awk脚本_awk replace函数_awk

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

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

如何编写awk命令和脚本

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

awk_awk replace函数_awk脚本

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,

awk_awk脚本_awk replace函数

673,

585,

如何编写awk命令和脚本

如果列分隔符不是空格或制表符(例如逗号),则可以在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

awk replace函数_awk_awk脚本

标题571

标题673

标题585

如何编写awk命令和脚本

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

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

awk脚本_awk_awk replace函数

Gagaawk脚本,

普雷斯利,

如何编写awk命令和脚本

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

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

如何编写awk命令和脚本

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

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

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

如何编写awk命令和脚本

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

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

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

Linux公社的RSS地址:

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


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-287526-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...