aiken's blog
  • home
  • archives
  • search
  • Aiken's Blog
  • home
  • posts
  • tags
  • categories
  • archives
  • about
  • search
  • linklog
Home » Tags

Bash

Grep、Sed、Awk 03 Awk

Linux 三剑客之 Awk (由三个创始人的姓氏首字母组成),相比于 Grep 和 Sed 而言更为特殊一些,它是一种模式匹配的编程语言,其主要的作用匹配文本进行处理,其擅长实现对文本的格式化输出,而作为一门编程语言:支持函数,变量,循环,运算,但相对简单。 AWK 的执行逻辑是:搜索文件的每一行,如果发现匹配内容,就执行下一个编程步骤,如果没发现,就继续处理下一行的内容。 Intro 由于 AWK 实际上是一个编程语言,本篇主要只介绍其命令行用法。 首先介绍 AWK 命令,其主要用于匹配文本并格式化输出,适用于对表格化的数据机型处理。其使用模板大致如下: bash awk [options] 'program' var=value file... awk [options] 'pattern {action1; action2; ...}' file ... awk [options] -f programfile var=value file... awk [options] 'BEGIN{ action;... } pattern{ action;... } END { action;... }' file ... -f scriptfile: 从脚本文件中读取 awk 命令 -v var=value: 赋值一个用户定义变量,也可用这种方式修改内置变量 -F fs: fs 可为任意字符串或者正则表达式,用于指定分隔符(也可以通过-v 的方式修改内置的分隔符变量来实现) 每个 action 或者说 statement 之间用 ; 分割 ...

April 18, 2023 · 4 min · 720 words · aikenhong ·  Bash
#Bash

Grep、Sed、Awk 02 Sed

Linux 三剑客之 Sed,相比于擅长数据查找定位的 Grep,Sed(Stream Editor)擅长做的是数据修改,做的主要是做一些增删改的功能。 sed 和 awk 的区别是什么? Intro 首先介绍 Sed 命令,Stream Editor 流编辑器,针对字符流来进行文件编辑,同样,其核心也在于正则匹配式,其用法如下: bash sed [option] {script} [input-file] 其中{script}可以理解为三者的组合:sed 动作指令+Reg 用正则&行号确定修改位置+修改的内容:Script 是 Sed 的核心,分别对应着:操作的行为,操作的位置和操作的内容。 Sed 的用法也可以按照这个来记: bash sed [-hnV] [-e <script>] [-f <script文件>] [文本文件] h 显示 helo ;-n 表示静默输出,-V 显示版本;参考第一种用法,-e 可以指定多个 script 对输入的文件进行处理,-f 则可以将多个 script 写在文件中,通过读取文件中的 scripts 来对文本文件进行处理。 ...

April 15, 2023 · 3 min · 636 words · aikenhong ·  Bash
#Bash

Grep、Sed、Awk 01-Grep

Linux 三剑客之 Grep。Grep 估计会是大部分 Linux 用户最常用的文本搜索命令了,在三剑客中的使用场景也是最广泛的。在对正则有了基本了解之后,就可以更好的使用 Grep,同时也可以通过 Grep 的使用来更好的掌握常用的正则表达式。 Intro 首先介绍 Grep 命令,Global Regular Expression Print 全局正则表达式输出,使用正则表达式搜索文本内容输出。其使用模板如下: bash grep [option] pattern file option 指定 grep 的搜索模式 pattern 需要搜索的内容,可以用正则表达式指定一个模式来做匹配 file 可以是文件夹等路径,用来确定搜索的范围(仅支持通配符)[[Published发布/Linux三剑客之正则]] 接下来分别对两个部分进行简单的说明,file 的范围指定参考正则文章中对通配符的介绍即可。 Option 搜索模式 参考资料:man grep ,ManPage-zh 具体完整的有哪些搜索模式可以在 man page 中进行查看。这里主要介绍一些常见的搜索模式和一些使用场景。 ...

April 12, 2023 · 2 min · 262 words · aikenhong ·  Bash
#Bash

Grep、Sed、Awk 00 RegExp

“awk、grep、sed 是 linux 操作文本的三大利器,合称文本三剑客,也是必须掌握的 linux 命令之一。三者的功能都是处理文本,但侧重点各不相同,其中属 awk 功能最强大,但也最复杂。grep 更适合单纯的查找或匹配文本,sed 更适合编辑匹配到的文本,awk 更适合格式化文本,对文本进行较复杂格式处理。“ Linux文本三剑客超详细教程—grep、sed、awk 在介绍这三个命令之前,需要对正则表达式有所了解,结合正则表达式来使用,才能发挥这 linux 三剑客的的全部能力。 正则表达式 RegExp 正则表达式: Regual Expression 为一类特殊字符和文本符号共通约定的一种 pattern,其中的一些字符并不表示其本身的含义,而是用来做通配符号。 其中基本正则表达式 BRE 是普遍支持的,而拓展正则表达式 ERE 通常则是需要特殊的参数来启用的。通过正则表达式中特殊符号的辅助,能够更快的过滤,查找,替换,处理字符流等。 除了在 grep、sed、awk 的 linux 三剑客中,在各个语言和各种搜索函数的地方,正则表达式都被普遍支持,应用相当广泛。 基础正则表达式对应的元字符主要有以下几个: bash ^ $ . [ ] * 而拓展正则表达式在上述元字符的基础上增加了: bash ( ) { } ? + | 等字符,接下来我们将逐一展开各个元字符的作用。 ...

April 11, 2023 · 2 min · 288 words · aikenhong ·  Bash
#Bash

Bash Notebook 01

整理脚本编写的一些最基本语法,包括参数传递,赋值,循环等基本语句,方便后续的脚本编写和改动。 语句注释 单行注释:# ,多行注释: bash :' 多行注释用冒号加单引号即可 ' echo 'legal' 命令行参数传递 命令行传递参数的方式极其简单, $1 … $ 9 可分别代表输入的 9 个参数,第 10 个参数则使用 ${10} 表示,可以将其赋予变量后便于使用。 一些特殊参数: $0 脚本本身的名称 $# 输入参数的数量 $$ 进程 ID $* | $ @ 所有参数(从第一个开始 $(PWD) | `pwd` 都能输出当前的工作路径 举个脚本例子如下: ...

January 25, 2023 · 5 min · 854 words · aikenhong ·  Bash
#Bash
© 2025 aiken's blog Licensed under CC BY-NC 4.0 · Powered by Hugo & PaperMod Visitors: Views: