Linux 三剑客grep sed 与 awk

2022-08-12 16:44:01 浏览数 (1)

1. grep

grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来(匹配到的标红)。

代码语言:javascript复制
grep [option] pattern file
复制代码
  • v:显示不被pattern 匹配到的行,相当于[^] 反向匹配
  • e :实现多个选项间的逻辑or 关系
  • E:扩展的正则表达式

2. sed

sed主要用来自动编辑一个或多个文件, 简化对文件的反复操作.

代码语言:javascript复制
sed [options] '[地址定界] command' file(s)
复制代码

options

  • n:不输出模式空间内容到屏幕,即不自动打印,只打印匹配到的行
  • e: 多点编辑,对每行处理时,可以有多个Script
  • f:把Script写到文件当中,在执行sed时-f 指定文件路径,如果是多个Script,换行写
  • r:支持扩展的正则表达式
  • i:直接将处理的结果写入文件
  • i.bak:在将处理的结果写入文件之前备份一份

地址界定

  • 不给地址:对全文进行处理
  • 单地址:
    • #: 指定的行
    • /pattern/:被此处模式所能够匹配到的每一行

地址范围:

代码语言:javascript复制
 - #,#
 - #, #
 - /pat1/,/pat2/
 - #,/pat1/
  • ~:步进
    • sed -n ‘1~2p’ 只打印奇数行 (1~2 从第1行,一次加2行)
    • sed -n ‘2~2p’ 只打印偶数行

3. awk

awk是一种编程语言,用于在linux/unix下对文本和数据进行处理。

代码语言:javascript复制
awk [options] 'program' var=value file…
复制代码
  • F fs:fs指定输入分隔符,fs可以是字符串或正则表达式,如-F:
  • v var=value:赋值一个用户定义变量,将外部变量传递给awk
  • f scripfile:从脚本文件中读取awk命令
  • FS ****:输入字段分隔符,默认为空白字符
  • OFS ****:输出字段分隔符,默认为空白字符
  • RS :输入记录分隔符,指定输入时的换行符,原换行符仍有效
  • ORS :输出记录分隔符,输出时用指定符号代替换行符
  • NF :字段数量,共有多少字段, NF引用最后一列,NF引用最后一列,NF引用最后一列,(NF-1)引用倒数第2列
  • NR :行号,后可跟多个文件,第二个文件行号继续从第一个文件最后行号开始
  • FNR :各文件分别计数, 行号,后跟一个文件和NR一样,跟多个文件,第二个文件行号从1开始
  • FILENAME :当前文件名
  • ARGC :命令行参数的个数
  • ARGV :数组,保存的是命令行所给定的各参数,查看参数

源码附件已经打包好上传到百度云了,大家自行下载即可~

链接: https://pan.baidu.com/s/14G-bpVthImHD4eosZUNSFA?pwd=yu27 提取码: yu27 百度云链接不稳定,随时可能会失效,大家抓紧保存哈。

如果百度云链接失效了的话,请留言告诉我,我看到后会及时更新~

GIT 项目推荐:包含多端免授权可商用,希望在互联网的生涯中帮助到您

附件地址:https://gitee.com/ZhongBangKeJi

0 人点赞