在进行数据抽样时,我们关注所抽取的数据在整体数据中分布的均匀性。
最简单的就是均匀抽取,即每隔几行选取一行。
比如,数据文件较大时,每隔10行或者每隔100行进行抽取。
假如数据文件还是“msg”
我们每隔10行取一行,有两种方法:
方法1:nl+grep
nl msg | grep -P '1\t' > target_file
方法2:awk
awk '{if(NR%10 ==1) print $0}' msg > target_file
两种方法都可以满足我们提出的需求。
但经过比较后发现,方法2效率略高于方法1,msg数据量:23380092
耗时分别为:13s、12s. (当然取决于具体的硬件)
而在前文中,我们统计包含某字符串的行数时,grep的效率要远远高于awk。
不难发现,是nl导致了效率的低下。nl把所有的记录都输出了一遍,效率和awk持平,而grep耗时1s左右(和上文中测试结果一致)。
因此在需要将文件内容都output一遍的场景下,优先选择awk方式。
而且,awk还有另一个好处,在面对每隔2行、3行...n行取一行的需求,实现起来更方便。
而nl+grep就比较纠结了,例如实现每隔一行取一行的需求:
nl+grep:
nl msg | grep -P '2\t|4\t|6\t|8\t|0\t' > target_file
awk:
awk '{if(NR%2 ==0) print $0}' msg > target_file
相关推荐
sed awk grep sed awk grepsed awk grep sed awk grep sed awk grep sed awk grep sed awk grep sed awk grep sed awk grep
本文将深入探讨shell编程,以及与之紧密相关的sed、awk和grep命令,这些都是Linux系统中进行文本处理和数据操作的重要工具。 首先,让我们了解什么是Shell编程。Shell是操作系统提供的一个接口,允许用户与系统内核...
sed awk grep命令使用 sed awk grep命令使用 sed awk grep命令使用
### Linux系统中的查询三剑客:grep、awk、sed 使用详解 #### grep 命令详解 `grep` 是一个非常强大的文本搜索工具,它可以在文本中查找指定的字符串,并且能够逐行处理文本。这使得 `grep` 成为了文本处理和数据...
grep适用于简单的搜索和计数任务,sed则更加强大,可以进行文本替换和复杂编辑,而awk则类似于一种简化的编程语言,其在文本处理上提供了极高的灵活性和强大的功能。熟练掌握这三个工具,将大幅提高Linux环境下的...
例如,可以先用`grep`筛选出包含特定模式的行,然后通过`sed`进行格式化或删除不需要的信息,最后用`awk`进行数据分析和处理。在学习过程中,建议从简单的命令开始,逐渐熟悉它们的语法和功能,然后尝试解决实际问题...
在Linux或Unix环境中,`grep`、`sed`和`awk`是三个非常强大的文本处理工具。通过掌握这些工具的基本用法及高级功能,用户可以高效地处理各种文本文件。下面将详细介绍如何使用这些命令进行具体的文本操作。 #### 1....
在IT领域,文本处理是日常工作中不可或缺的一部分,而grep、sed、awk和perl这四个工具在处理文本时都广泛地使用了正则表达式。它们各自有着不同的特性和适用场景,理解它们之间的差异有助于我们更高效地进行文本操作...
包含命令:awk、cat、cut、diff、echo、gawk、grep、head、sed、sort、tac、tail、tr、uniq、wc 可以在windows上cmd窗口显示彩色文字,用法:echo.exe -e "\033[32;1mGREEN\033[0m
以上介绍涵盖了 awk、grep 和 sed 的基础概念和使用方法,以及正则表达式的基本概念和一些常见的元字符。这些工具和技巧对于日常的文本处理和数据管理非常实用,是 Linux 用户和系统管理员不可或缺的一部分。
通过以上内容,我们可以看出grep、sed和awk都是非常强大且灵活的工具,它们各自拥有不同的优势,可以根据实际需求选择合适的方法来处理文本文件。在实际工作中,熟练掌握这些命令可以帮助我们高效地完成各种文本处理...
"巧用AWK处理二进制数据文件" AWK是Unix、Linux中处理文本的好工具,可以对复杂的文本...使用AWK处理二进制数据文件需要组合多种工具,包括OD、sed和AWK,并且需要根据不同的数据结构和输出要求,设计相应的AWK脚本。
总的来说,`grep`、`sed`和`awk`是文本处理的三剑客,它们在Windows下的实现,使得开发者和系统管理员能够在非Unix/Linux环境中进行高效的文本数据操作和分析。熟悉并掌握这三个工具,对于提升工作效率和解决问题的...
在IT行业中,文本处理是日常工作中不可或缺的一部分,而awk、sed和grep是Linux/Unix环境中强大的文本处理工具。这三个工具各自具有独特的功能,但又常常相互配合,为数据过滤、格式化和查找提供了强大支持。下面我们...
本文将深入探讨几个常用的命令,包括sed、awk、grep和tr,它们都是强大的文本处理工具,尤其在处理大量文本数据时非常有用。 首先,让我们聚焦于AWK命令。AWK是由Aho、Weinberger和Kernighan三位计算机科学家开发的...
在Unix/Linux操作系统中,awk和sed是两款强大的文本处理工具,它们被广泛用于数据提取、格式转换、文本操作等任务。这两个命令都是基于行的工具,处理文本时以行为单位进行操作。 **awk** awk是一种编程语言,它...
msys2-x86_64-20150512可以在windows使用linux命令ps,ls,awk,grep,scp,clone,svn等等 安装后,记住在windows的环境变量里面设置好msys2的安装目录为系统路径
一个轻量级的、灵活的命令行JSON处理器,类似于JSON数据处理工具、awk、grep等。它用可移植的C语言编写,没有运行时依赖,允许您轻松地切片、过滤、映射和转换结构化数据。jq 是一个强大的工具,用于在命令行环境中...
在实际应用中,`awk`常与其他Unix工具如`grep`、`sed`、`sort`和`find`等结合使用,形成强大的数据处理流程。例如,`grep`用于查找匹配特定模式的行,`sed`用于行级别的替换和转换,而`awk`则用于更深入的数据处理和...