资讯专栏INFORMATION COLUMN

SegmentFault 技术周刊 Vol.19 - Linux 文本处理三利器

hightopo / 1863人阅读

摘要:所以,本期周刊将介绍命令行世界中最常用的文本处理命令三巨头,让它们带你初步领略命令行的强大。简单的,可以直接理解为是一个数据处理工具,倾向于将一行文本分成数个字段来处理,适合小型数据的处理。

之前看过一篇文章《当我们 chmod 777 的时候,到底干了些什么?》,最近又想起来,让人不得不感叹前辈大神们的厉害,创造出如此多各样用途、各种使用方式的命令,以至于连文件权限 chmod 这样一种命令,都有这么多处理方式:

→ bash
bash-3.2$ chmod
usage:  chmod [-fhv] [-R [-H | -L | -P]] [-a | +a | =a  [i][# [ n]]] mode|entry file ...
        chmod [-fhv] [-R [-H | -L | -P]] [-E | -C | -N | -i | -I] file ...

回到主题,在使用 Linux 的过程,我们最常用的操作命令可能就是对文本文件的处理了:find / grep / sort / cut / awk / sed / uniq / tee / tr / diff / cmp / split / xargs 等,每天都会用到诸如这些操作。所以,本期周刊将介绍命令行世界中最常用的文本处理命令——awk, sed, grep 三巨头,让它们带你初步领略命令行的强大。

0. 进入命令行世界

玩转 Linux - 常用的命令和操作

玩转 Linux - shell 编程基础

玩转 Linux - 神级工具 sed & awk

Linux 有哪些常见的使用命令,shell 编程有哪些常用的命令,无论你是菜鸟还是老鸟,@AlphaGooo 的两篇归纳整理,总是可以用得到。而在第三篇中,引入今天的主题,作者甚至称 sed 和 awk 为“Linux 系统的两个神级工具”。

1. awk

AWK 是一门解释型的编程语言,在处理文本文件时,它又是非常强大的文本分析工具。之所以叫 AWK 是因为其取了三位创始人 Alfred Aho, Peter Weinberger 和 Brian Kernighan 的姓氏首字母。

简单的,可以直接理解为「awk 是一个数据处理工具」,倾向于将一行文本分成数个“字段”来处理,适合小型数据的处理。

Linux 基础命令介绍八:文本分析 awk // vvpale

三十分钟学会 AWK // mylxsw

awk 将两个文件逐行连接 // quietin

awk 分析日志得到响应时间的最大最小和平均值

awk 在删除镜像过程中的用法及说明 // mongod

一篇基础介绍,一篇译自著名的《AWK Tutorial》的全面学习指南,再几篇使用案例,再好不过。

2. sed

SED 的英文全称是 Stream Editor,本质上是一个编辑器,但是它是非交互式的,这点与 VIM 不同;同时它又是面向字符流的,输入的字符流经过 SED 的处理后输出。这两个特性使得 SED 成为命令行下面非常有用的一个处理工具。

SED 也是一个管道命令,可以分析 standard input 的,主要是用来分析关键字的使用、统计等,此外还可以将数据进行替换、删除、心中、选取特定行等功能。区别于 AWK,你可以从它的这几种典型用途中看出:文本替换、选择性的输出文本文件、从文本文件的某处开始编辑、无交互式的对文本文件进行编辑。

Linux 基础命令介绍十:文本流编辑 sed // vvpale

三十分钟学会 SED // mylxsw

sed 两个地址都是正则表达式时地址范围的确定 // willw64

3. grep

globally search a regular expression and print(以正规表示法进行全域查找以及打印),g/re/p。在给出文件列表或标准输入后,它会对匹配一个或多个正则表达式的文本进行搜索,并只输出匹配(或者不匹配)的行或文本。

关于 grep,一个有 40 年历史的 Unix 命令 // GitCafe

“在我公开 grep 这个命令之前的很长一段时间里它都是我的私有命令。” Unix 的创造者 Ken Thompson,也是 grep 的作者。该文讲述了一段过往历史,在 grep 的发明背后,fgrep 和 egrep 的等修改版一直在被人使用,却甚少有大众知道。

Linux 基础命令介绍五:文本过滤 grep // vvpale

作者的这个 Linux 基础命令介绍系列,非常值得阅读,基本每一块都做到了非常详细地步骤化解说,简直 excited!

4. 彩蛋:你不知道的有趣命令

接下来,我们会陆陆续续推出好几期关于 Linux 命令行的主题周刊,也将在每期都增加一部分好玩的知识了解,本期是「有(wu)趣(yong)的命令」:screenfetch、fortune、toilet、ddate、sl……炫酷无敌,可是…哈哈哈哈哈哈哈。

Linux 下有趣的命令 // luckyw

译 丨 11 个无用而有趣的 Linux 终端彩蛋 // 陌辞寒

(本期完)


# SegmentFault 技术周刊 #

「技术周刊」是社区特别推出的技术内容系列,一周一主题。周刊筛选的每篇内容,是作者的独到见解,踩坑总结和经验分享。

每周二更新,欢迎「关注」或者「订阅」。大家也可以在评论处留言自己感兴趣的主题,推荐主题相关的优秀文章。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/9500.html

相关文章

  • SegmentFault 技术周刊 Vol.37 - 分布式缓存利器:Redis

    摘要:持久化到中反向代理的负载均衡基于的集群搭建如何实现从中订阅消息转发到客户端的扩展是阻塞式,使用订阅发布模式时,会导致整个进程进入阻塞。缓存是用于解决高并发场景下系统的性能及稳定性问题的银弹。 showImg(https://segmentfault.com/img/bVYE6k?w=900&h=385); Redis 是由意大利程序员 Salvatore Sanfilippo(昵称:a...

    kuangcaibao 评论0 收藏0
  • SegmentFault 技术周刊 Vol.37 - 分布式缓存利器:Redis

    摘要:持久化到中反向代理的负载均衡基于的集群搭建如何实现从中订阅消息转发到客户端的扩展是阻塞式,使用订阅发布模式时,会导致整个进程进入阻塞。缓存是用于解决高并发场景下系统的性能及稳定性问题的银弹。 showImg(https://segmentfault.com/img/bVYE6k?w=900&h=385); Redis 是由意大利程序员 Salvatore Sanfilippo(昵称:a...

    binaryTree 评论0 收藏0
  • SegmentFault 技术周刊 Vol.39 - 什么!服务器炸了?

    摘要:有一次别人的云服务器被攻击,提供商竟然重启了物理机然后又诸多悲剧出现。造成微博服务短暂不可用。通过建立工具来诊断问题,并创建一种复盘事故的文化来推动并作出改进,防止未来发生故障。 showImg(https://segmentfault.com/img/bV0jif?w=900&h=385); 相信小伙伴们在上网或者玩游戏的时候一定都遇到过无法访问的情况。服务器炸了的原因有各种各样,下...

    1treeS 评论0 收藏0
  • SegmentFault 技术周刊 Vol.7 - iOS丨好好学习,从娃抓起~

    摘要:最近,阿温家小娃出生,让他当了一回公司的热议人物。还在高速,结果娃已经阿温突然在群里发了言,打破了公司群的宁静。儿子比手机先到啊阿温先生紧接着又发了个言,原来本该月中旬出生的娃,提前来到了这个世界。 showImg(https://segmentfault.com/img/remote/1460000007021306?w=690&h=295); 我有一程序员朋友阿温,92 年,高个子...

    bluesky 评论0 收藏0
  • SegmentFault 技术周刊 Vol.20 - 用 Canvas 画个星空

    摘要:在最后,推荐给大家几个相关的库,增加使用时的便捷。周刊筛选的每篇内容,是作者的独到见解,踩坑总结和经验分享。每周二更新,欢迎关注或者订阅。 showImg(https://sfault-image.b0.upaiyun.com/382/562/382562537-5874b30ad612b); SegmentFault 曾举办过一个社区官方的比赛「30 行 js 你能做出什么?」,产生...

    peixn 评论0 收藏0

发表评论

0条评论

hightopo

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<