linux 文本操作-数据过滤(grep,awk 使用)

这篇具有很好参考价值的文章主要介绍了linux 文本操作-数据过滤(grep,awk 使用)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一  linux 文本操作数据过滤使用实例

  示例:查找行内容包含“6883”标识的的行,并且提取68开头的数据,如下图

  原始数据日记文件,有些有6883,有些没有8383标识,如下:

linux 文本操作-数据过滤(grep,awk 使用),linux,运维,服务器

第一步:使用 grep 过虑数据

  使用 grep 过虑数据每行带有 “6883” 标识的数据:

grep 6883 dev_info.2024-01-21.3 > 832.txt

 linux 文本操作-数据过滤(grep,awk 使用),linux,运维,服务器

  执行后如下图,新的文本已过虑掉没有6883的数据,每行都有6883

linux 文本操作-数据过滤(grep,awk 使用),linux,运维,服务器

第二步:使用awk提取数据

    使用awk 提取每行68开头的数据,先分析一下数据的结构发现以68开头的是最后一列,可以使用以下指令

awk -F',' '{print $NF}' 831.txt > 8311.txt

linux 文本操作-数据过滤(grep,awk 使用),linux,运维,服务器 

使用awk去重复的行数据 

awk '!seen[$0]++'  8311.txt > 8322_.txt

linux 文本操作-数据过滤(grep,awk 使用),linux,运维,服务器

执行awk '!seen[$0]++'  8311.txt > 8322_.txt  后会去重复的行数据并生成新的文件8322_.txt的文件如下:

linux 文本操作-数据过滤(grep,awk 使用),linux,运维,服务器

到此完成得到标识6883则不重数据的数据。

二 grep详细介绍

grep 是 Linux 系统中的一个强大的文本搜索工具,它可以用于在文件或标准输入流中查找符合指定模式的字符串。grep 的一般格式如下:

grep [选项] 模式 文件...

 文章来源地址https://www.toymoban.com/news/detail-821949.html

其中,模式 是指定要查找的字符串或正则表达式,文件 是指定要搜索的文件。

grep 支持多种选项,用于控制搜索的行为。以下是一些常用的选项:

  • -i:忽略大小写。
  • -v:反向查找,只显示不包含模式的所有行。
  • -n:显示匹配行的行号。
  • -r:递归搜索子目录中的文件。
  • -l:只显示匹配的文件名。
  • -c:只显示匹配的行数。

以下是一些 grep 的使用示例:

# 查找文件中包含 "hello" 的行
grep "hello" file

# 查找文件中包含 "hello" 或 "world" 的行
grep -e "hello" -e "world" file

# 查找文件中包含 "hello" 的行,并显示行号
grep -n "hello" file

# 查找文件中包含 "hello" 的行,并显示匹配的文件名
grep -l "hello" file

# 查找文件中包含 "hello" 的行,并显示匹配的行数
grep -c "hello" file

grep 还支持正则表达式,这使得它可以用于更复杂的搜索。例如,以下命令将查找文件中包含至少一个数字的行:

grep -e '[0-9]' file

grep 是一个非常强大的工具,它可以用于各种文本搜索任务。通过了解 grep 的使用方法,您可以更有效地管理您的 Linux 系统。

以下是一些 grep 的进阶用法:

  • 使用管道:grep 可以与其他命令结合使用,以实现更复杂的功能。例如,以下命令将查找文件中包含 "hello" 的行,并将其保存到另一个文件中:
grep "hello" file | tee new_file
  • 使用正则表达式:grep 支持正则表达式,这使得它可以用于更复杂的搜索。例如,以下命令将查找文件中以 "hello" 开头的行:
grep "^hello" file
  • 使用边界字符:grep 支持边界字符,这使得它可以用于更精确的搜索。例如,以下命令将查找文件中以 "hello" 开头,以空格结尾的行:
grep "^hello\s" file
  • 使用后置处理器:grep 支持后置处理器,这使得它可以用于将搜索结果进行进一步处理。例如,以下命令将查找文件中包含 "hello" 的行,并将其替换为 "world":
grep "hello" file | sed -e "s/hello/world/g"

通过了解 grep 的进阶用法,您可以充分利用 grep 的强大功能。

三 awk详细介绍

awk 是一个强大的文本处理工具,它可以用于在文件中查找、提取和转换数据。awk 的一般格式如下:

awk [选项] 表达式 文件...

其中,表达式 是指定要查找、提取或转换的规则,文件 是指定要处理的文件。

awk 支持多种选项,用于控制处理的行为。以下是一些常用的选项:

  • -F:指定域分隔符,默认为空格。
  • -f:指定要使用的 awk 脚本文件。
  • -v:指定变量。

以下是一些 awk 的使用示例:

# 查找文件中包含 "hello" 的行
awk '{ if ($0 ~ /hello/) print $0 }' file

# 提取文件中每行的第一个域
awk '{ print $1 }' file

# 将文件中每行的第一个域和第二个域合并为一个字符串
awk '{ print $1" "$2 }' file

# 将文件中每行的第一个域替换为 "world"
awk '{ $1 = "world" }' file

awk 还支持正则表达式,这使得它可以用于更复杂的处理。例如,以下命令将查找文件中以 "hello" 开头,以空格结尾的行:

awk '{ if ($0 ~ /^hello\s/) print $0 }' file

awk 是一个非常强大的工具,它可以用于各种文本处理任务。通过了解 awk 的使用方法,您可以更有效地处理文本数据。

以下是一些 awk 的进阶用法:

  • 使用管道:awk 可以与其他命令结合使用,以实现更复杂的功能。例如,以下命令将查找文件中包含 "hello" 的行,并将其保存到另一个文件中:
awk '{ if ($0 ~ /hello/) print $0 }' file | tee new_file
  • 使用后置处理器:awk 支持后置处理器,这使得它可以用于将处理结果进行进一步处理。例如,以下命令将查找文件中包含 "hello" 的行,并将其替换为 "world":
awk '{ if ($0 ~ /hello/) print $0 | sed -e "s/hello/world/g" }' file
  • 使用 awk 脚本:awk 脚本可以用于实现更复杂的处理逻辑。例如,以下 awk 脚本将查找文件中包含 "hello" 的行,并将其替换为 "world":
BEGIN { FS = "\t" }

{
  if ($1 == "hello") {
    $1 = "world"
  }

  print $0
}

通过了解 awk 的进阶用法,您可以充分利用 awk 的强大功能。

 

到了这里,关于linux 文本操作-数据过滤(grep,awk 使用)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux:管道命令与文本处理三剑客(grep、sed、awk)

    众所周知,bash命令执行的时候会输出信息,但有时这些信息必须要经过几次处理之后才能得到我们想要的格式,此时应该如何处置?这就牵涉到 管道命令(pipe) 了。管道命令使用的是 | 这个界定符号。另外,管道命令与连续执行命令是不一样的,这点下面我们会说明。 我们先

    2023年04月18日
    浏览(54)
  • Linux运维常用awk命令使用

    awk 是一种文本处理工具,经常用于对 Linux 系统中的文本文件进行处理。 1、awk 查找指定文本 awk \\\'/orange/ {print}\\\' file.txt 这个命令将在 file.txt 文件中查找包含orange 的行,并将这些匹配的内容打印出来。 awk \\\'/pattern/ {print NR \\\":\\\" $0}\\\' file.txt 这个命令将在file.txt 文件中查找包含 patte

    2024年02月04日
    浏览(74)
  • linux命令三剑客grep、sed、awk

    准备 grep、sed、awk号称\\\"linux三剑客\\\",使用频繁,功能强大,本文通过一个实例演示下基本用法。首先准备一个文本文件,命名为text.txt,写入文件内容: grep 首先,最简单的是grep。经常用来过滤查看日志。对于grep需要知道如下几个常用的命令选项: -n: 额外输出行号。例如过

    2024年02月05日
    浏览(83)
  • 【Linux】ps -ef|grep -v grep|awk ‘{print $2}‘ 命令详解

    第一步:grep -v grep grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。 ps -ef|grep java 就是通过管道的方式,将 ps 命令查询出来的进程信息内容筛选出

    2024年02月14日
    浏览(44)
  • Linux中字符处理三剑客(grep sed awk )

    在 Linux 系统中,字符处理流程可以利用三个常用的工具来完成,三剑客的具体说明如下: grep:grep 是一种强大的文本搜索工具,可以搜索文件内容中包含指定文本的行,并打印出包含该文本的行。grep 命令通常用于搜索日志文件、配置文件等。 在Linux中,\\\"grep\\\"是一种文本搜索

    2024年02月08日
    浏览(53)
  • Linux :: 内容过滤指令【3】:grep 指令【详解】:在指定文件中过滤搜索信息、(模糊)查找包含指定字符串的内容!(如:系统故障时,查看操作日志信息等情景)

    前言:本篇是 Linux 基本操作篇章的内容! 笔者使用的环境是基于腾讯云服务器:CentOS 7.6 64bit。 学习集: C++ 入门到入土!!!学习合集 Linux 从命令到网络再到内核!学习合集 注:find 指令常与 grep 指令在面试中被提及,需让你回答异同! 目录索引: 1. 基本语法、功能及使

    2024年02月09日
    浏览(61)
  • Linux三剑客grep、sed、awk(包括练习题)

    Linux grep (global regular expression) 命令用于查找文件里符合条件的字符串或正则表达式。 基本用法与常见的正则表达式 扩展正则表达式实践 此处使用grep -E 进行实践扩展正则,egrep官网已经弃用 注意:sed和awk使用单引号,双引号有特殊解释 sed是Stream Editor(字符流编辑器)的缩写

    2024年02月11日
    浏览(51)
  • Linux三剑客(awk、sed、grep) 和 正则表达式

    本文章适用于一定工作经验(熟悉Linux基础)的同行,欢迎各位大佬批判指正。 上手三剑客(grep,sed,awk)之前,需要熟悉正则表达式, 正则表达式 ——事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的

    2024年02月15日
    浏览(61)
  • vim、awk、tail、grep的使用

    awk命令的参数选项及说明 参数选项 解释说明 -c 只统计匹配的行数 -v 排除匹配结果 -n 显示匹配行与行号 -i 不区分大小写 -E 使用egrep命令 -color = auto 为grep过滤结果添加颜色 -w 只匹配过滤的单词 -o 只输出匹配的内容

    2024年02月14日
    浏览(30)
  • 运维(SRE)成长之路-第3天 文本处理三剑客之 grep

     grep: 全局搜索正则表达式并打印行(Global search REgular expression and Print out the line)作用:文本搜索工具,根据用户指定的“模式”对目标文本逐行进行匹配检查;打印匹配到的行模式:由正则表达式字符及文本字符所编写的过滤条件   格式: 常见选项: –color=auto 对匹配到的

    2024年02月09日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包