我的编程空间,编程开发者的网络收藏夹
学习永远不晚

如何在Shell脚本中使用awk指令

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

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

如何在Shell脚本中使用awk指令

如何在Shell脚本中使用awk指令?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

语法格式:awk [选项]  '指令'  操作文件

常用选项:-F  指定分隔符,分隔符用""引起来

  • -v:var=value在awk程序开始之前指定一个值valu给变量var,这些变量值用于awk程序的BEGIN快

  • -f:后面跟一个保存了awk程序的文件,代替在命令行指定awk程序

实例1:在命令行直接输入awk指令

awk '{print}' 1.txt  #逐行读取文件1.txt内容并打印

如何在Shell脚本中使用awk指令

awk '{print $0}' 1.txt #逐行读取文件内容,并打印该行,$0保存的是当前行的内容

如何在Shell脚本中使用awk指令

awk '{print "hello"}' 1.txt  #逐行读取1.txt文件内容,每行结束后打印一个hello,文件1.txt有多少行就打印多少个hello

如何在Shell脚本中使用awk指令

awk '{print $1}'  1.txt  #打印1.txt的第一列内容,在不指定分割符的情况下,awk默认使用空白做分割符

如何在Shell脚本中使用awk指令

awk  -F ":" '{print $1}' /etc/passwd   #以":"为分隔符打印/etc/passwd文件的第一例内容

如何在Shell脚本中使用awk指令

实例2:将awk指令写入文件,通过-f选项调用

vim awkscriptBEGIN {FS=":"}{print $1}awk -f awkscript /etc/passwd #通过调用awk指令文件来执行awk命令

如何在Shell脚本中使用awk指令

实例3:awk的BEGIN块和END块

BEGIN用于初始化FS变量(列分隔符),打印,或者初始化后需要在程序中调用的全局变量

END用于执行最后的运算或者打印最终的输出结果

END块和BEGIN不是必须的

实例4:在awk中使用正则匹配,正则表达式必须要放在//中

awk '/123/{print}'  1.txt  #打印1.txt中匹配123的那一行内容

如何在Shell脚本中使用awk指令

awk -F ":"  '/123/{print $2}' 1.txt  #以":"为分隔符打印1.txt中匹配123的那一行中,第二列的内容

如何在Shell脚本中使用awk指令

awk -F ":" '$1 ~ /root/{print $2}'  /etc/passwd #打印/etc/passwd中,第一列匹配root的行其第二列的内容 ~表示匹配

如何在Shell脚本中使用awk指令

实例5:awk的表达式和块

awk提供了多个比较操作符:"=="  ">" "<"  "<=" ">="  "!="   "~"匹配    "!~"不匹配

awk 'BEGIN{ FS=":"} $1 == "root" {print $3}'  /etc/passwd #以":"为分隔符,打印/etc/passwd中第一列是root的行其第3列的内容

如何在Shell脚本中使用awk指令

实例6:awk中的条件语句

awk 'BEGIN {FS=":"} {if ($1 ~ "root") {print $2}}'  /etc/passwd # 以":"为分隔符,打印/etc/passwd文件中第一列匹配root的行,其第二列的内容

如何在Shell脚本中使用awk指令

awk 'BEGIN {FS=":"} ($1 ~ "linux" || $2 ~ "Network") {print $3}'  1.txt # 以":"为分隔符,打印1.txt文件中,第一列匹配linux或者第二列匹配Network的行,其第三列的内容

如何在Shell脚本中使用awk指令

在awk中NF变量记录的是当前行中有多少列(默认是空格为分割符)

awk '/ock/{print NF}' 1.txt # 统计匹配ock的行有多少列

如何在Shell脚本中使用awk指令

awk 'NF == 3 {print}'  1.txt  #打印1.txt中有3列的行的内容,示例中,第二行有三列,所以打印的就是第二行的内容

如何在Shell脚本中使用awk指令

$NF记录的是当前行最后一列的内容(如果每一行有多列内容)

awk '{if (NR > 3) {print $NF} }' 1.txt    # 输出1.txt中行号大于3的行,其最后一列的内容

如何在Shell脚本中使用awk指令

NR记录的是当前行的行号

awk '{if (NR > 3) {print NR".\t"$0} }' 1.txt  #格式化输入1.txt中行号大于3的行的行号和内容

如何在Shell脚本中使用awk指令

awk 'BEGIN { x=0 } /^$/{x=x+1} END{print "find" " " x " " "blank lines"}'  1.txt  #统计1.txt中有多少空行

如何在Shell脚本中使用awk指令

awk '{print ($2**2) +1}'  3.txt  #将3.txt文件中第二列内容做平方运算后再加1输入(字符串做平方运算后结果为0)

如何在Shell脚本中使用awk指令

awk脚本示例1:

功能:打印1.txt文本中每一列的内容

#!/bin/bashnum=`wc 1.txt | awk '{print $2}'`   # 统计1.txt文件有多少列for i in `seq 1 $num`            # 根据文件列数进行循环do awk -v a=$i '{print $a}' 1.txt     # 打印每一列的内容,-v 参数可以指定一个变量保存外部变量的值,将外部变量传递给awkdone

如何在Shell脚本中使用awk指令

如何在Shell脚本中使用awk指令

看完上述内容,你们掌握如何在Shell脚本中使用awk指令的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注编程网行业资讯频道,感谢各位的阅读!

免责声明:

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

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

如何在Shell脚本中使用awk指令

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

如何在Shell脚本中使用awk指令

如何在Shell脚本中使用awk指令?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。语法格式:awk [选项] 指令 操作文件常用选项:-F 指定分隔符,分隔符用""引起来
2023-06-09

Shell脚本中awk指令的用法

语法格式:awk [选项] '指令' 操作文件 常用选项:-F 指定分隔符,分隔符用""引起来-v:var=value在awk程序开始之前指定一个值valu给变量var,这些变量值用于awk程序的BEGIN快-f:后面跟一个保存了aw
2022-06-04

如何使用Shell脚本echo指令

本篇内容主要讲解“如何使用Shell脚本echo指令”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用Shell脚本echo指令”吧!echo是Shell的一个内部指令,用于在屏幕上打印出指
2023-06-09

如何使用Shell脚本test命令

这篇文章主要讲解了“如何使用Shell脚本test命令”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何使用Shell脚本test命令”吧!Shell中的 test 命令用于检查某个条件是否
2023-06-09

如何在Shell中使用cut指令

如何在Shell中使用cut指令?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。cut是以每一行为一个处理对象的,这种机制和sed一样。cut接受三个定位方法:1
2023-06-09

set指令如何在shell中使用

本篇文章给大家分享的是有关set指令如何在shell中使用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。语法set [-可选参数] [-o 选项]功能说明set 指令可根据不同
2023-06-09

“$” 符号如何在Shell 脚本中使用

“$” 符号如何在Shell 脚本中使用?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。通常情况下,在工作中用的最多的有如下几项:$0:Shell 的命令本身1到9:表示 She
2023-06-09

Shell脚本echo指令使用小技巧

echo是Shell的一个内部指令,用于在屏幕上打印出指定的字符串。命令格式: echo arg您可以使用echo实现更复杂的输出格式控制。 显示转义字符echo ""It is a test""结果将是: "It is a test" 双
2022-06-04

无法在shell脚本中使用cd命令如何解决

这篇文章将为大家详细讲解有关无法在shell脚本中使用cd命令如何解决,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。代码如下:#! /bin/bash# c.shcd /mnt/hgfs/v
2023-06-09

如何在Shell脚本中使用管道

如何在Shell脚本中使用管道?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。示例1:生成一个8位的随机密码tr -dc A-Za-z0-9_
2023-06-09

read命令怎么在SHELL脚本中使用

本篇文章给大家分享的是有关read命令怎么在SHELL脚本中使用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1.1 shell read简介要与Linux交互,脚本获取键盘输
2023-06-09

如何使用linux shell脚本xargs命令

本篇内容主要讲解“如何使用linux shell脚本xargs命令”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用linux shell脚本xargs命令”吧!xargs是给命令传递参数的
2023-06-09

for循环如何在shell脚本中使用

这期内容当中小编将会给大家带来有关for循环如何在shell脚本中使用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。for 命令:for i in 的各种用法 :for i in “file1” “fil
2023-06-09

node中如何使用shell脚本

这篇文章将为大家详细讲解有关node中如何使用shell脚本,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。新建项目下新建脚本文件touch newFile.sh修改文件权限chmod 777 newFil
2023-06-14

如何使用Shell脚本break和continue命令

本篇内容介绍了“如何使用Shell脚本break和continue命令”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在循环过程中,有时候需要
2023-06-09

如何在shell中使用expect命令进行远程执行命令脚本

如何在shell中使用expect命令进行远程执行命令脚本?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。expect是用来实现自动交互功能的工具之一,使用expect-send
2023-06-09

Shell脚本中的printf命令使用

上一章节我们学习了 Shell 的 echo 命令,本章节我们来学习 Shell 的另一个输出命令 printf。 printf 命令模仿 C 程序库(library)里的 printf() 程序。 printf 由 POSIX 标准所定义
2023-05-12

如何在任意目录中使用shell脚本

这期内容当中小编将会给大家带来有关如何在任意目录中使用shell脚本,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。我的是mac环境:1. 执行命令 open ./.bash_profile2. 在文件中添
2023-06-09

Shell脚本如何使用

小编给大家分享一下Shell脚本如何使用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧! shell前言Shell 能够接收用户输入的命令,并对命令进行处理,处理完毕后再将结果反馈给用户,比如输出到显示器、写入到文件等,这就
2023-06-15

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录