首页 > 系统相关 >Linux Shell下awk,sed,cut的常用方法并在自动化运维脚本中联合运用

Linux Shell下awk,sed,cut的常用方法并在自动化运维脚本中联合运用

时间:2023-08-17 22:33:09浏览次数:49  
标签:文件 Shell 提取 运维 cut file sed txt 日志

AWK处理工具,它可以用于提取、处理和格式化文本数据。它的主要功能是逐行扫描文件,并根据匹配模式执行操作。AWK具有以下主要特点:

  • 读取和处理文本文件中的数据
  • 根据匹配模式执行操作
  • 逐行扫描文件
  • 打印指定的列

在自动化运维脚本中,AWK可以用于处理日志文件,例如提取特定行的数据、从日志文件中提取特定的错误消息、统计特定条件的日志条数等。

AWK的用法:

awkawk 'pattern { action }' file
awk 'pattern { action }' file

其中,pattern是要匹配的模式,action是要执行的命令,file是要处理的文件。

例如,以下是一个使用AWK提取文件中的第二列的示例:

awk '{print $2}' file.txt      #默认使用空格作为分隔符
awk -F, '{print $2}' file.txt  #使用,作为分隔符
awk '{print $1}' file.txt # 打印文件的第一列
awk '/pattern/ {print $0}' file.txt # 打印包含特定模式的行
awk '{sum+=$1} END {print sum}' file.txt # 计算第一列的总和并打印

该命令将打印文件file.txt中的第二列。

SED是一种流式文本编辑器,它可以根据匹配模式执行操作,并输出结果。SED具有以下主要特点:

  • 读取和处理文本文件中的数据
  • 根据匹配模式执行操作
  • 输出结果

在自动化运维脚本中,SED可以用于处理文本数据,例如删除日志文件中的特定行、替换特定字符串、删除行首和行尾的空格等。

CUT是一种文本处理工具,它可以用于从文本行中提取指定的字段。CUT具有以下主要特点:

  • 从文本行中提取指定的字段
  • 指定分隔符

SED的用法:

sed 'command' file 其中,command是要执行的SED命令,file是要处理的文件。

例如,以下是一个使用SED删除文件中包含特定字符串的行的示例:

sed '/特定字符串/d' file.txt 该命令将删除文件file.txt中包含特定字符串的行。

sed 's/foo/bar/g' file.txt # 将文件中的所有"foo"替换为"bar"

sed '/pattern/d' file.txt # 删除包含特定模式的行

sed '1d文件。

在自动化运维脚本中,CUT可以用于处理CSV文件或以逗号分隔的日志文件,例如提取特定的字段、统计特定字段的值等。

CUT的用法:

cut -d'分隔符' -f字段列表 file 其中,-d选项指定分隔符,-f选项指定要提取的字段列表,file是要处理的文件。

例如,以下是一个使用CUT提取CSV文件中的第一列和第三列的示例:

cut -d, -f1,3 file.csv 该命令将提取文件file.csv中的第一列和第三列。


下面是一个自动化运维脚本的示例,它使用AWK、SED和CUT来处理文本数据:

bash#!/bin/bash

# 从日志文件中提取错误消息,并统计每个错误消息出现的次数
awk '/Error/ {print}' logfile.txt | sort | uniq -c | sort -nr

# 从文本文件中提取第二列和第三列,并将结果输出到新的文件中
cut -d' ' -f2,3 file.txt > newfile.txt

# 从文本文件中删除包含特定字符串的行
sed '/特定字符串/d' file.txt > newfile.txt

# 从日志文件中删除第一行和最后一行,并将结果输出到新的文件中
sed '1d;$d' logfile.txt > newlogfile.txt
#!/bin/bash

# 从日志文件中提取错误消息,并统计每个错误消息出现的次数
awk '/Error/ {print}' logfile.txt | sort | uniq -c | sort -nr

# 从文本文件中提取第二列和第三列,并将结果输出到新的文件中
cut -d' ' -f2,3 file.txt > newfile.txt

# 从文本文件中删除包含特定字符串的行
sed '/特定字符串/d' file.txt > newfile.txt

# 从日志文件中删除第一行和最后一行,并将结果输出到新的文件中
sed '1d;$d' logfile.txt > newlogfile.txt

上述脚本使用了AWK来提取日志文件中的错误消息,并使用SORT和UNIQ来统计每个错误消息出现的次数。然后使用CUT来从文本文件中提取第二列和第三列,并将结果输出到新的文件中。接着使用SED来从文本文件中删除包含特定字符串的行,并将结果输出到新的文件中。最后使用SED来从日志文件中删除第一行和最后一行,并将结果输出到新的文件中。

标签:文件,Shell,提取,运维,cut,file,sed,txt,日志
From: https://blog.51cto.com/u_16206879/7128026

相关文章

  • shell脚本之免交互expect
    目录1.多行重定向2.Expect3.awk数组4.去除重复行实例1.多行重定向cat<<EOF#打印在屏幕上cat<<a.txt#不打印在屏幕上[root@localhost~]#cat<<EOF>HELLO>HI>OK>EOFHELLOHIOK[root@localhost~]#cat<<EOF>test#传给testHELLOHIOKEOF[r......
  • 在ubuntu中半自动安装搜狗输入法的shell脚本
    总而言之就是用脚本实现了一遍搜狗官网教程中的内容,脚本仅仅在虚拟机环境的ubuntu22中对sogoupinyin_4.2.1.145_amd64.deb测试过,不保证在其他地方还能不能正常运行。脚本启动需要用sudo命令以管理员权限执行,脚本执行完毕并重启电脑后,按Ctrl+空格键调出输入法,按Shift键切换中......
  • 智能装备物联网:仓储与物流装备管理运维平台
    仓储是连接生产和销售的中转系统,对于促进生产、提高效率有着重要的辅助作用。智能仓储与物流装备具备自动化、智能化、高效率等特点,一般包括智能输送系统、智能分拣系统、AGV配送系统、智能仓储等,包含堆垛机、机器人、AGV小车、传感器等设备,可以提高仓储货物流动的安全性和准确性,目......
  • PowerShell Deep Drive 2-正则审查O365安装日志
    PowerShellDeepDrive2-正则审查O365安装日志前言最近遇到一个问题,在安装O365客户端的时候,遇到安装失败的情况,需要检查O365的安装日志,确定问题。在Office365(现在称为Microsoft365)的安装过程中,系统会生成安装日志以记录安装操作的详细信息。这些日志对于排查安装问题、分析错......
  • PowerShell Deep Drive 1-禁用Windows更新服务
    防挨打Windows更新服务的必要性在以下几个方面得到超级可爱的体现哦~(。♥‿♥。)安全性:Windows更新服务是守护计算机系统安全的关键宝宝哦!微软定期发布安全补丁和更新,修修补补已知漏洞、填填系统安全缺口,......
  • ERROR 1820 (HY000): You must reset your password using ALTER USER statement befo
    问题描述想要在linux系统里面使用mysql时,出现了这样的报错信息问题解决mysql>setglobalvalidate_password_policy=LOW;mysql>setglobalvalidate_password_length=9;使用这两个命令,将密码的限制进行修改,然后执行修改密码的命令:ALTERUSERUSER()IDENTIFIEDBY'wing......
  • 轴承设备智能运维平台:提升效率、降低成本、保障运行
    在现代工商业生产和生活活动中,轴承是一种非常重要的机械部件,广泛应用于各种设备和工具中,是智能装备产业链的上游,已经逐步实现自动化生产和数字化管理。传统的轴承设备管理方法往往存在着一些问题,如管理效率低下、故障发现不及时、维修成本高等。为了解决这些问题,智能运维平台应运而......
  • 轴承制造设备有哪些?如何实现轴承设备的智能运维?
    轴承是很多工商业设备和民用产品的核心零部件,与传感器、变速器、传动装置、控制器、电子元器件等产品一样,都是智能装备产业链的上游,具备广泛的应用场景。轴承制造一般涉及毛坯加工设备(.墩锻机、碾扩机、冷碾机等)、热处理设备(淬火设备、回火设备等)、车加工设备(车床、磨床等)等,这些设......
  • 安科瑞变电所运维系统在电力系统的应用及案例分析 
    未晓妃安科瑞电气股份有限公司上海嘉定201801摘要:电力系统在电力企业中具有应用价值,随着电力系统的规模扩大,电力设备的应用量增加,考虑到电力系统的当前运行情况以及不断增加的电能*,相关工作单位需要加强变电运维技术的应用,保障变电运效益。为此,既有的变电运维系统应当被改进。现......
  • CutLER:一种用于无监督目标检测和实例分割的方法
    本文分享自华为云社区《CutLER:一种用于无监督目标检测和实例分割的方法》,作者:Hint。目标检测是计算机视觉中的一种重要任务,使AI系统感知、推理、理解目标。训练定位模型需要特别的标注,比如目标的框、掩膜、定位点等。本文的工作研究了无监督的目标检测和实例分割,不使用人工标注。首......