码农庄园

sed和AWK流编辑器命令

2024-06-12  本文已影响0人  小马过河R
每隔10行删除一行

sed在Linux和MAC中可以直接用,window中需要安装软件,而且还遇到报错。


`sed` 是一个流编辑器(stream editor),用于对文本文件进行基于行的编辑操作。它允许用户在文件中搜索、替换、删除和插入文本。`sed` 是 Unix 和类 Unix 系统(如 Linux)中的一个标准命令行工具。

`sed` 的基本语法如下:

```

sed [选项] '命令' 输入文件

```

其中,选项用于控制 `sed` 的行为,命令用于指定要执行的编辑操作,输入文件是要处理的文本文件。

`sed` 的一些常用命令:

- `s/旧文本/新文本/`:替换文本。将每一行中的第一个匹配的旧文本替换为新文本。

- `s/旧文本/新文本/g`:全局替换。将每一行中所有匹配的旧文本替换为新文本。

- `d`:删除行。删除匹配的行。

- `p`:打印行。打印匹配的行。

- `i`:插入行。在匹配的行之前插入新行。

- `a`:追加行。在匹配的行之后追加新行。

例如,要将文件 `file.txt` 中的所有 "apple" 替换为 "orange",可以使用以下命令:

```

sed 's/apple/orange/g' file.txt

```

这将输出替换后的文本,但不会修改原始文件。要将更改保存到原始文件,可以使用 `-i` 选项:

```

sed -i 's/apple/orange/g' file.txt

```

要将更改保存到新文件,可以使用重定向:

```

sed 's/apple/orange/g' file.txt > new_file.txt

```


AWK(Aho, Weinberger and Kernighan)是一种用于文本处理的编程语言,主要用于在文本文件中查找和处理模式。AWK 最初是在 1977 年由 Alfred Aho、Peter Weinberger 和 Brian Kernighan 开发的,目的是为了简化 Unix 系统中文本处理任务的编写。AWK 名字来源于三位作者的姓氏首字母。

AWK 的主要特点包括:

1. 简洁的语法:AWK 使用类似于 C 语言的语法,易于学习和使用。

2. 正则表达式支持:AWK 支持强大的正则表达式,可以方便地匹配和操作文本。

3. 内置函数库:AWK 提供了一系列内置函数,如数学运算、字符串处理等。

4. 管道和重定向支持:AWK 可以与其他 Unix 命令通过管道和重定向进行集成。

AWK 的基本工作原理是将输入文件(或标准输入)分割成记录(默认为一行),然后逐条记录进行处理。每条记录被分割成字段,可以使用字段分隔符(默认为空格或制表符)进行控制。AWK 提供了丰富的控制结构,如条件语句(if-else)、循环语句(for、while)等,以及数组数据结构。

AWK 的一些常见用途包括:

1. 文本搜索和替换。

2. 数据提取和报告生成。

3. 日志文件分析。

4. 数据转换和清洗。

下面是一个简单的 AWK 示例,用于计算文本文件中所有数字的总和:

```bash

awk '{ sum += $1 } END { print sum }' numbers.txt

```

上一篇 下一篇

猜你喜欢

热点阅读