返回顶部
首页 > 资讯 > 操作系统 >如何在Linux中使用awk文本处理工具
  • 297
分享到

如何在Linux中使用awk文本处理工具

2023-06-13 02:06:14 297人浏览 泡泡鱼
摘要

本篇文章为大家展示了如何在linux中使用awk文本处理工具,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。代码如下:  [chengmo@localhost ~]$ awk ‘B

本篇文章为大家展示了如何在linux中使用awk文本处理工具,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

代码如下:

  [chengmo@localhost ~]$ awk ‘BEGIN{info = “this is a test”;split(info,tA,“ ”);for(k in tA){print k,tA[k];}}’

  4 test

  1 this

  2 is

  3 a

  如果需要按照顺序输出,通过键值定位方式输出。

  代码如下:

  [chengmo@localhost ~]$ awk ‘BEGIN{info = “this is a test”;slen=split(info,tA,“ ”);for(i=1;i《=slen;i++){print i,tA[i];}}’

  1 this

  2 is

  3 a

  4 test

  一、通过内置函数(asort,asorti使用) awk 3.1以上版本才支持

  1、asort使用说明

  srcarrlen=asort[srcarr,dscarr] 默认返回值是:原数组长度,传入参数dscarr则将排序后数组赋值给dscarr.

  代码如下:

  [chengmo@localhost ~]$ awk ‘BEGIN{

  a[100]=100;

  a[2]=224;

  a[3]=34;

  slen=asort(a,tA);

  for(i=1;i《=slen;i++)

  {print i,tA[i];}

  }’

  1 34

  2 100

  3 224

  asort只对值进行了排序,因此丢掉原先键值。

  2、asorti 使用说明

  代码如下:

  [chengmo@localhost ~]$ awk ‘BEGIN{

  a[“d”]=100;

  a[“a”]=224;

  a[“c”]=34;

  slen=asorti(a,tA);

  for(i=1;i《=slen;i++)

  {print i,tA[i],a[tA[i]];}

  }’

  1 a 224

  2 c 34

  3 d 100

  asorti对键值 进行排序(字符串类型),将生成新的数组放入:tA中。

  二、通过管道发送到sort排序

  代码如下:

  [chengmo@localhost ~]$awk ‘BEGIN{

  a[100]=100;

  a[2]=224;

  a[3]=34;

  for(i in a)

  {print i,a[i] | “sort -r -n -k2”;}

  }’

  2 224

  100 100

  3 34

  通过管道,发送到外部程序“sort”排序,-r 从大到小,-n 按照数字排序,-k2 以第2列排序。通过将数据丢给第3方的sort命令,所有问题变得非常简单。如果以key值排序 –k2 变成 -k1即可。

  代码如下:

  [chengmo@localhost ~]$ awk ‘BEGIN{

  a[100]=100;

  a[2]=224;

  a[3]=34;

  for(i in a)

  {print i,a[i] | “sort -r -n -k1”;}

  }’

  100 100

  3 34

  2 224

  三、自定义排序函数

  awk自定义函数结构:

  代码如下:

  function funname(p1,p2,p3)

  {

  staction;

  return value;

  }《/p》 《p》以上是:awk自定义函数表示方式,默认传入参数都是以引用方式传入,return值,只能是字符型或者数值型。 不能返回数组类型。 如果返回数组类型。需要通过形参 方式传入。再获得。《/p》 《p》awk返回数组类型《/p》 《p》awk ‘function test(ary){ for(i=0;i《10;i++){ ary[i]=i; } return i;}BEGIN{ n=test(array); for(i=0;i《n;i++){ print array[i]; }}’ 

  排序函数

  代码如下:

  #arr 传入一维数组 《/p》 《p》#key 排序类型 1是按照值排序 2按照键值 《/p》 《p》#datatype 比较类型 1按照数字排序 2按照字符串排序 《/p》 《p》#tarr 排序返回的数组 《/p》 《p》#splitseq 分割字符串 数组中键与值之间分割字符串 《/p》 《p》#return 数组长度 《/p》 《p》#实现思路,将原始数组a[‘a’]=100 排序后变成 a[1]=a分隔符100 ,然后按照下标递归显示内容。 本排序使用冒泡方式进行。 《/p》 《p》 《/p》 《p》function sortArr(arr,key,datatype,tarr,splitseq)

  { 《/p》 《p》 if(key ~ /[^1-2]/)

  {return tarr;}

  for(k in arr)

  {

  tarr[++alen]=(k“”splitseq“”arr[k]);

  } 《/p》 《p》 for(m=1;m《=alen;m++)

  {

  for(n=1;n《=alen-m-1;n++)

  {

  split(tarr[m],tm,splitseq);

  split(tarr[n+1],tn,splitseq); 《/p》 《p》 tnum=tarr[m];

  if(datatype==1)

  {

  if(tm[key]+0《tn[key]+0)

  {

  tarr[m]=tarr[n+1];

  tarr[n+1]=tnum;

  }

  }

  else

  {

  if((tm[key]“”) 《 (tn[key]“”))

  {

  tarr[m]=tarr[n+1];

  tarr[n+1]=tnum;

  }

  }

  }

  }

  return alen;

  }

  完整代码如下:

  代码如下:

  [chengmo@Centos5 ~]$ awk ‘BEGIN{

  a[“a”]=100;

  a[“b”]=110;

  a[“c”]=10;

  splitseq=“%%”;

  alen=sortArr(a,2,1,tarr,splitseq);

  for(m=1;m《=alen;m++)

  {

  split(tarr[m],ta,splitseq);

  print m,ta[1],ta[2];

  }

  }

  function sortArr(arr,key,datatype,tarr,splitseq)

  { 《/p》 《p》 if(key ~ /[^1-2]/)

  {return tarr;}

  for(k in arr)

  {

  tarr[++alen]=(k“”splitseq“”arr[k]);

  } 《/p》 《p》 for(m=1;m《=alen;m++)

  {

  for(n=1;n《=alen-m-1;n++)

  {

  split(tarr[m],tm,splitseq);

  split(tarr[n+1],tn,splitseq); 《/p》 《p》 tnum=tarr[m];

  if(datatype==1)

  {

  if(tm[key]+0《tn[key]+0)

  {

  tarr[m]=tarr[n+1];

  tarr[n+1]=tnum;

  }

  }

  else

  {

  if((tm[key]“”) 《 (tn[key]“”))

  {

  tarr[m]=tarr[n+1];

  tarr[n+1]=tnum;

  }

  }

  }

  }

  return alen;

  }

  ’ 《/p》 《p》1 b 110

  2 a 100

  3 c 10

上述内容就是如何在Linux中使用awk文本处理工具,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注编程网操作系统频道。

--结束END--

本文标题: 如何在Linux中使用awk文本处理工具

本文链接: https://lsjlt.com/news/264317.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何在Linux中使用awk文本处理工具
    本篇文章为大家展示了如何在Linux中使用awk文本处理工具,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。代码如下:  [chengmo@localhost ~]$ awk ‘B...
    99+
    2023-06-13
  • Linux中如何使用awk工具
    这篇文章主要为大家展示了“Linux中如何使用awk工具”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux中如何使用awk工具”这篇文章吧。awk是linux中处理文本的强大工具,或者说是...
    99+
    2023-06-27
  • Linux下如何使用Shell文本处理工具
    本篇内容介绍了“Linux下如何使用Shell文本处理工具”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Linux下的操作习惯不像windo...
    99+
    2023-06-13
  • Linux怎么使用awk文本处理工具实现多行合并
    这篇文章主要介绍“Linux怎么使用awk文本处理工具实现多行合并”,在日常操作中,相信很多人在Linux怎么使用awk文本处理工具实现多行合并问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux怎么使用...
    99+
    2023-06-13
  • Linux文本处理工具使用详解
    1、统计出/etc/passwd文件中其默认shell为非/sbin/nologin的用户个数,并将用户都显示出来 grep是一个文本工具,是通过一行一行来匹配文本进行处理的; 通过grep命令,借助-v参数显示不...
    99+
    2022-06-03
    Linux 文本处理工具
  • 如何在CentOS中使用awk命令处理文本数据
    在CentOS中使用awk命令处理文本数据可以通过以下步骤: 打开终端,使用以下命令输入awk命令: awk '{ p...
    99+
    2024-04-02
  • 如何在Linux中使用awk命令处理文字数据
    本篇文章为大家展示了如何在Linux中使用awk命令处理文字数据,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。awk可以显示文件中的内容,如下图所示,awk显示passwd中的内容,并且设置只显示前...
    99+
    2023-06-10
  • 在Eclipse中如何使用版本管理工具SVN
    这篇文章主要为大家展示了“在Eclipse中如何使用版本管理工具SVN”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“在Eclipse中如何使用版本管理工具SVN”这篇文章吧。1.SVN安装由于这...
    99+
    2023-05-30
    eclipse svn
  • 如何在linux中使用awk函数
    如何在linux中使用awk函数 ?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一、算术函数:以下算术函数执行与 C 语言中名称相同的子例程相同的操作:函数名说明atan2( ...
    99+
    2023-06-13
  • Linux下如何使用coredumpctl工具处理BUG
    小编给大家分享一下Linux下如何使用coredumpctl工具处理BUG,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一个不幸的事实是,所有的软件都有 bug,...
    99+
    2023-06-27
  • Linux下处理文本常用工具有哪些
    这篇文章给大家分享的是有关Linux下处理文本常用工具有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。find文件查找查找txt和pdf文件 找txt和pdf文件find . \(&nbs...
    99+
    2023-06-27
  • Binlog 日志处理工具如何在MySQL中使用
    本篇文章为大家展示了Binlog 日志处理工具如何在MySQL中使用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Canal定位:基于数据库增量日志解析,提供增量数据订阅&消费,目前主要支持...
    99+
    2023-06-14
  • linux中如何使用awk
    这篇文章给大家分享的是有关linux中如何使用awk的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。awk 是用于 Unix 和类 Unix 系统的强大文本解析工具,但是由于它有可编程函数,因此你可以用它来执行常规...
    99+
    2023-06-16
  • Linux中Shell文本处理工具的示例分析
    这篇文章给大家分享的是有关Linux中Shell文本处理工具的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。提供的例子和参数都是最常用和最为实用的;我对shell脚本使用的原则是命令单行书写,尽量不要超过...
    99+
    2023-06-13
  • 如何使用awk添加文本
    这篇文章主要为大家展示了“如何使用awk添加文本”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用awk添加文本”这篇文章吧。添加文本可以按照添加控制序列或其他字符的相同方式将文本添加到显示...
    99+
    2023-06-03
  • linux中如何使用awk命令删除文本重复行
    linux中如何使用awk命令删除文本重复行,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。测试文本如下:# cat 1.txt2.1.10.12.1.10....
    99+
    2023-06-12
  • 如何理解Linux下的命令行编程工具Awk
    这篇文章主要介绍“如何理解Linux下的命令行编程工具Awk”,在日常操作中,相信很多人在如何理解Linux下的命令行编程工具Awk问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何理解Linux下的命令行编...
    99+
    2023-06-13
  • Linux中如何使用sed文本处理命令
    Linux中如何使用sed文本处理命令,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。sed对文本的处理很强大,并且sed非常小,参数少,容易掌握,他的操作方式根awk有点像。s...
    99+
    2023-06-12
  • 如何在Shell脚本中使用awk指令
    如何在Shell脚本中使用awk指令?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。语法格式:awk [选项]  '指令'  操作文件常用选项...
    99+
    2023-06-09
  • 如何在Linux下使用Tar工具归档文件
    这篇文章主要讲解了“如何在Linux下使用Tar工具归档文件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何在Linux下使用Tar工具归档文件”吧!Tar 由 'Tape arc...
    99+
    2023-06-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作