文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Linux三剑客之awk命令详解

2023-10-27 09:08

关注

目录

一、awk常见用法

二、案例

        2.1、awk中-F的使用

        2.2、awk中几个特殊的内部变量

        用法:

 三、实战案例


一、awk常见用法

        通常情况下awk所使用的命令格式如下,其中,单引号家伙是那个大括号“{ }”用于设置对于数据进行的处理动作。awk可以直接处理目标文件,也可以通过“-f”读取脚本对目标文件进行处理。

awk 选项 '模式或条件{编辑指令}' 文件1 文件2  #过滤并输出文件中符合条件的内容

awk -f 脚本文件 文件1 文件2  #从脚本中调用编辑指令,过滤并输出内容

        它与sed命令有一些不同,sed常用于一整行的处理,二awk比较倾向于将一行分成多个“字段”然后再进行处理,awk命令的过程中,可用使用逻辑操作符“&&”表示“与”、“||”表示“或”、“!”表示“非”;还可以进行简单的数学运算。

二、案例

        2.1、awk中-F的使用

cat /etc/passwd | awk -F ".' "{print $1,$3,$4}''

#以":"为分隔符,输出1,3,4列内容

         awk 从输入文件或者标准输入中读入信息,与 sed 一样,信息的读入也是逐行读取的。 不同的是 awk 将文本文件中的一行视为一个记录,而将一行中的某一部分(列)作为记录 中的一个字段(域)。为了操作这些不同的字段,awk 借用 shell 中类似于位置变量的方法, 用$1、$2、$3…顺序地表示行(记录)中的不同字段。另外 awk 用$0 表示整个行(记录)。 不同的字段之间是通过指定的字符分隔。awk 默认的分隔符是空格。awk 允许在命令行中 用“-F 分隔符”的形式来指定分隔符。

        2.2、awk中几个特殊的内部变量

FS:指定每行文本的字段分隔符,默认为空格或制表位。 与-F一样NF:当前处理的行的字段个数。 NR:当前处理的行的行号(序数)。 $0:当前处理的行的整行内容。 $n:当前处理行的第 n 个字段(第 n 列)。 FILENAME:被处理的文件名。RS:数据记录分隔,默认为\n,即每行为一条记录。 

        用法:

cat /etc/passwd | awk '{print}'  #输出所有内容  或者  '{print $0}'

cat /etc/passwd | awk 'NR==1,NR==3{print}' #输出第1~3行内容 

cat /etc/passwd | awk '(NR<=3)$$(NR>=1){print}'

  

 cat /etc/passwd | awk 'NR==1||NR==3{print}' #输出1、3行的内容

nl /etc/passwd | awk '(NR%2)==1{print}'  #输出奇数行(为了更好的可视化,这里用nl)

 nl /etc/passwd | awk '(NR%2)==0{print}'   #输出偶数行

 三、实战案例

58.87.87.99 - - [09/Jun/2020:03:42:43 +0800] "POST /wp-cron.php?doing_wp_cron=1591645363.2316548824310302734375 HTTP/1.1" ""sendfileon128.14.209.154 - - [09/Jun/2020:03:42:43 +0800] "GET / HTTP/1.1" ""sendfileon64.90.40.100 - - [09/Jun/2020:03:43:11 +0800] "GET /wp-login.php HTTP/1.1"""sendfileo

要输出时间和IP

cat 1.txt  | awk -F"[ []" '{print$1,$5}'

awk -F: 'BEGIN{a=0};$3%2==0 && /\/sbin\/nologin/{print NR,$0} END{print a}' /etc/passwd 

 

 

来源地址:https://blog.csdn.net/qq_57377057/article/details/126254525

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-人工智能
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯