17_Shell好用工具:awk

17_Shell好用工具:awk

grep:查找

sed:编辑

cut:切割

awk:切割 + 可以通过定义变量、流程控制进行深度分析加工

一、awk内置变量

内置变量列出了几个常用的

内置变量含义
FILENAME文件名
NFNumber Of Fields,单行总列数
NRNumber Of Records,单行行号
$n$0 整条记录 $1 第一列 $2 第二列
$NF最后一列

二、awk基本使用场景举例

awk基本语法:
awk [options] ‘pattern{action}’ filename

2.1、默认分隔符

#默认分割符是“空格”
echo "123 456 789" | awk '{print $1"&&"$2"&&"$3}'

在这里插入图片描述

2.1、自定义分隔符

#使用 ":" 分隔字符串,并打印1-6列
awk -F ':' '{print $1 $2 $3 $4 $5 $6}' awk_bak.txt

在这里插入图片描述

2.2、内置变量

#打印文件中文件名、行号、列数
#方式1:
awk '{print "文件名:"FILENAME " 行号:"NR" 列数:"NF" 内容:"$0}' awk.txt#方2:(推荐)
awk '{printf("文件名:%s 行号:%s 列数:%s 内容:%s\n", FILENAME, NR, NF, $0)}' awk.txt

在这里插入图片描述

在这里插入图片描述

2.3、指定行号

#打印行号等于5的行的所有内容
awk 'NR==5{print $0}' awk.txt

在这里插入图片描述

2.4、正则表达式

#打印包含Holen的行的所有内容
awk '/Holen/{print $0}' awk.txt#打印以"-"开头的行
ll | awk '/^-/'#打印以".txt"结尾的行
ll | awk '/$*.txt/'

在这里插入图片描述

在这里插入图片描述

2.5、特殊列

#打印第一列和最后一列
awk '{print "第一列:"$1 " ,最后一列:" $NF}' awk.txt#打印倒数第二列
awk '{print "第一列:"$1 ", 最后一列:" $NF ", 倒数第二列:" $(NF-1)}' awk.txt

在这里插入图片描述

在这里插入图片描述

2.6、指定范围行、指定列

#打印第1-3行全部内容
awk '{if(NR>=1&&NR<=3){print $0}}' awk.txt#打印第1-3行第一列内容
awk '{if(NR>=1&&NR<=3){print $1}}' awk.txt

在这里插入图片描述

2.7、多分割符

#分割 1:2=3?4!5>6 并打印
awk -F '[:=?!>]' '{print $1 "&&" $2 "&&" $3 "&&" $4 "&&" $5}' awk_bak.txt

在这里插入图片描述

2.8、添加开始和结束

#在打印Hello world之前添加start,之后添加end
echo "Hello world." | awk 'BEGIN{print "start"}{print $0}END{print "end"}'

在这里插入图片描述

2.9、变量定义和循环

#手动拼接分割后的字符串   列数较少推荐
echo "123 456 789" | awk '{print $1$2$3}'#循环凭借分割后的字符串   列数较多推荐
echo "123 456 789" | awk -v str="" '{for(n=1;n<=NF;n++){ str=str$n }} END{print str}'

在这里插入图片描述

3.12、运算

#awk计算 $n 和 变量的运算
echo "2.1" | awk -v i=1 '{ print $0+1}'

在这里插入图片描述

3.13、截取IP

#截取IP
ifconfig | awk '/192.168/{print $2}'

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

自己调用yolov5模型进行前向推理时的报错

当我在自己的工程中调用yolov5的目标检测模型进行推理&#xff0c;代码大致如图&#xff1a; 当运行到如图箭头所指的位置的时候报如下错误&#xff1a; Traceback (most recent call last): File “/home/yons/train/code/mmpose/inference.py”, line 81, in pred yolo_m…

Windows 11预览补丁KB5040527影响火绒驱动加载的解决办法

7 月 11 日&#xff0c;微软更新Windows 11 预览版本补丁 KB5040527&#xff0c;补丁安装后会影响火绒驱动加载导致火绒安全软件服务异常&#xff0c;补丁相关信息如下&#xff1a; https://blogs.windows.com/windows-insider/2024/07/11/releasing-windows-11-builds-22621-…

知识图谱和 LLM:利用Neo4j驾驭大型语言模型(探索真实用例)

这是关于 Neo4j 的 NaLLM 项目的一篇博客文章。这个项目是为了探索、开发和展示这些 LLM 与 Neo4j 结合的实际用途。 2023 年,ChatGPT 等大型语言模型 (LLM) 因其理解和生成类似人类的文本的能力而风靡全球。它们能够适应不同的对话环境、回答各种主题的问题,甚至模拟创意写…

blender使用(三)常用建模操作及修改器

1&#xff0c;挤出图形 tab编辑模式&#xff0c;选中一个点/线/面&#xff0c;按键E&#xff0c;可以挤出对应的图形。选中点会挤出一条线&#xff0c;线会挤出一个面&#xff0c;面挤出体 2&#xff0c;倒角 选中一个边后&#xff0c;ctrlB &#xff0c;拖动鼠标是倒角范围&am…

破解反爬虫策略 /_guard/auto.js(一) 原理

背景 当用代码或者postman访问一个网站的时候&#xff0c;访问他的任何地址都会返回<script src"/_guard/auto.js"></script>&#xff0c;但是从浏览器中访问显示的页面是正常的&#xff0c;这种就是网站做了反爬虫策略。本文就是带大家来破解这种策略&…

C/C++ 关机整人代码

目录 &#x1f4d2;温馨提示 &#x1f4d2;示例代码 &#x1f4d2;代码分析 &#x1f680;欢迎互三&#x1f449;&#xff1a;程序猿方梓燚 &#x1f48e;&#x1f48e; &#x1f680;关注博主&#xff0c;后期持续更新系列文章 &#x1f680;如果有错误感谢请大家批评指出&…

深入浅出消息队列----【初始篇】

深入浅出消息队列----【初始篇】 一、思考&#xff1a;为什么会出现 “消息队列”二、RocketMQ 总览producerproducer groupnameSrvBrokerBroker clusterconsumerconsumer groupTopicTag 本文仅是文章笔记&#xff0c;整理了原文章中重要的知识点、记录了个人的看法 文章来源&a…

linux下Jenkins的安装部署

前言&#xff1a; 用docker安装Jenkins非常方便快捷&#xff0c;但是最近国内的docker镜像源都不好用了&#xff0c;这里回顾一下最原始的Jenkins安装方式 安装前准备 安装环境 Jenkins的运行依赖java环境&#xff0c;linux下jdk的安装参考&#xff1a;linux下JDK的安装-CSD…

有效、轻松地从 SD 卡恢复已删除照片的教程

“我拿到了新手机&#xff0c;并将 SD 卡设置为保存手机拍摄的照片的位置&#xff1b;但是&#xff0c;我错误地删除了 SD 卡上的某些高清照片&#xff0c;如何从 SD 卡恢复已删除的照片&#xff1f;请帮忙。” 除了意外删除之外&#xff0c;许多因素都可能导致 SD 卡上的照片…

CH552G的使用IAP下载方式,下载IAP文件和用户运行代码

参考 参考&#xff1a;https://mar-sky.blog.csdn.net/article/details/140448176&#xff0c;本质一样&#xff0c;实现方式不同&#xff0c;对程序的要求不同&#xff0c;不用放在运行代码中。和下面最大区别就是代码的下载地址不同&#xff0c;IAP的代码放在的另一个区域。 …

持续集成03--Jenkins的安装与配置

前言 在持续集成/持续部署&#xff08;CI/CD&#xff09;的实践中&#xff0c;Jenkins作为一个开源的自动化服务器&#xff0c;扮演着至关重要的角色。本篇“持续集成03--Jenkins的安装配置”将带您走进Jenkins的世界&#xff0c;深入了解如何在Linux环境中安装并配置Jenkins。…

在 Apifox 中如何高效批量添加接口请求 Body 参数?

在使用 Apifox 进行 API 设计时&#xff0c;你可能会遇到需要添加大量请求参数的情况。想象一下&#xff0c;如果一个接口需要几十甚至上百个参数&#xff0c;若要在接口的「修改文档」里一个个手动添加这些参数&#xff0c;那未免也太麻烦了&#xff0c;耗时且易出错。这时候&…

W外链创建抖音私信卡片教程,私信卡片跳转微信工具

W外链地址wai.cn 在数字化时代的浪潮中&#xff0c;私域流量的价值愈发凸显&#xff0c;成为企业获取用户、建立品牌忠诚度、提升转化率的关键手段。抖音&#xff0c;作为当下最热门的短视频社交平台之一&#xff0c;其用户基数庞大、互动性强&#xff0c;为企业私域引流提供了…

3872:Library

网址如下&#xff1a; OpenJudge - 3872:Library 这玩意的dp公式应该很明显吧&#xff1f; 和斐波纳契数列一个样 就是n太大了&#xff0c;最高有十亿&#xff0c;不能用普通的dp来做 经验丰富的可能已经知道了 就是用快速幂加上斐波那契数列通项就行了&#xff0c;虽然f&…

看看我发现了什么好东西!FlowUs知识库还有“就业服务站点”?!

不得不说&#xff0c;FlowUs的知识库内容是在是太丰富了, 浏览了一下&#xff0c;发现真有能帮助毕业生的就业信息分享人才政策汇总等我需要的信息&#x1f4a1;&#xff0c;我反手就是一个订阅&#xff0c;怕下次找不到了&#xff01; 在数字化转型的浪潮中&#xff0c;团队和…

代理IP为何难以达到百分百的有效率?

“随着网络技术的不断发展代理IP成为了众多网络用户的重要工具&#xff0c;尤其在需要保护隐私、突破网络限制或进行大规模网络数据抓取等场景下。然而尽管代理IP的应用广泛且功能强大&#xff0c;但在实际应用中&#xff0c;我们不难发现代理IP的有效率往往难以达到百分百。”…

跨境电商账号被封禁?浏览器指纹风险你需要了解一下!

跨境电商运营者在利用海外社媒平台推广产品时&#xff0c;常常会遭遇一个难题&#xff1a;如何在利用这些平台进行市场营销的同时&#xff0c;避免因浏览器指纹识别技术而导致账户被封禁呢&#xff1f;作为资深的跨境电商从业人员&#xff0c;龙哥将分享一些专业见解&#xff0…

Qt中的弹簧:QSpacerItem的用法

Qt是一个跨平台的C++图形用户界面应用程序框架,它提供了丰富的控件和布局管理功能,使得开发复杂的用户界面变得简单。在Qt的布局系统中,QSpacerItem扮演了一个重要的角色,它被用来在界面元素之间添加“弹簧”,以确保布局的灵活性和适应性。 什么是QSpacerItem? QSpacerI…

【sklearn | 7】:scikit-learn项目实战指南

引言 在数据科学和机器学习领域&#xff0c;Python以其简洁的语法和强大的库支持&#xff0c;成为了许多开发者和研究者的首选语言。而在众多Python机器学习库中&#xff0c;scikit-learn以其易用性、灵活性和强大的算法集合&#xff0c;成为了最受欢迎的库之一。本文将深入探…

路由上传一个ui_control参数(uint32类型)控制页面UI显隐

前言&#xff1a;传一个uint32类型的值&#xff0c;通过 按位或操作符&#xff08;|&#xff09;来设置ui_control的值&#xff0c;通过按位与操作符&#xff08;&&#xff09;来检测是否显示或隐藏 简单介绍一下两个概念&#xff1a; 按位与操作符和按位或操作符都是二进…