Linux 文本处理三剑客(grep/sed/awk)

前言

之前在Linux的使用过程中都是使用grep, 以及sed替换较多. 今天借此总体了解下其他的命令. 本文只对于其做一些简单的介绍, 详细链接可以看下手册.


正文

  • grep
localhost:Desktop Sean$ grep -h
usage: grep [-abcDEFGHhIiJLlmnOoqRSsUVvwxZ] [-A num] [-B num] [-C[num]]
	[-e pattern] [-f file] [--binary-files=value] [--color=when]
	[--context[=num]] [--directories=action] [--label] [--line-buffered]
	[--null] [pattern] [file ...]

个人感觉grep的处理过程, 最主要的是写-E后的正则表达式.

grep -E "hello*" / grep -E "[1-9]+"

  • sed
localhost:Desktop Sean$ sed -h
sed: illegal option -- h
usage: sed script [-Ealn] [-i extension] [file ...]
       sed [-Ealn] [-i extension] [-e script] ... [-f script_file] ... [file ...]

工作使用比较多的是使用sed进行文本的替换.

注释 sed -i 's/^demo.key=.*/\#demo.key=/' ../config/application.properties;

  • awk
localhost:Desktop Sean$ awk
usage: awk [-F fs] [-v var=value] [-f progfile | 'prog'] [file ...]

awk 在工作中主要处理列数据.

docker ps -a |grep "16 months ago" |awk '{print $1}'|xargs docker rm

另外, 还能在awk内进行内嵌脚本:

awk 'BEGIN{ commands } pattern{ commands } END{ commands }'
# Example
echo -e "A line 1nA line 2" | awk 'BEGIN{ print "Start" } { print } END{ print "End" }'

Tips

如何输出文件的第10行?

如何输出文件的第10到第20行?


Reference

[1]. shell之三大文本处理工具grep、sed及awk
[2]. Linux三剑客之awk命令
[3]. 【Linux】 字符串和文本处理工具 grep & sed & awk
[4]. Linux手册 grep命令
[5]. Linux手册 sed命令
[6]. Linux手册 awk命令
[7]. Linux下grep显示前后几行信息
[8]. sed命令用法
[9]. shell 获取结果中的第n列,第n行
[10]. sed命令详解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值