sed 编辑器是 Linux 系统管理员的工具包中最有用的资产之一,因此,有必要彻底地了解其应用。
Linux 操作系统最大的一个好处是它带有各种各样的实用工具。存在如此之多不同的实用工具,几乎不可能知道并了解所有这些工具。可以简化关键情况下操作的一个实用工具是 sed。它是任何管理员的工具包中最强大的工具之一,并且可以证明它自己在关键情况下非常有价值。
sed 实用工具是一个“编辑器”,但它与其它大多数编辑器不同。除了不面向屏幕之外,它还是非交互式的。这意味着您必须将要对数据执行的命令插入到命令行或要处理的脚本中。当显示它时,请忘记您在使用 Microsoft Word 或其它大多数编辑器时拥有的交互式编辑文件功能。sed 在一个文件(或文件集)中非交互式、并且不加询问地接收一系列的命令并执行它们。因而,它流经文本就如同水流经溪流一样,因而 sed 恰当地代表了流编辑器。它可以用来将所有出现的 "Mr. Smyth" 修改为 "Mr. Smith",或将 "tiger cub" 修改为 "wolf cub"。流编辑器非常适合于执行重复的编辑,这种重复编辑如果由人工完成将花费大量的时间。其参数可能和一次性使用一个简单的操作所需的参数一样有限,或者和一个具有成千上万行要进行编辑修改的脚本文件一样复杂。sed 是 Linux 和 UNIX 工具箱中最有用的工具之一,且使用的参数非常少。
sed 的工作方式
sed 实用工具按顺序逐行将文件读入到内存中。然后,它执行为该行指定的所有操作,并在完成请求的修改之后将该行放回到内存中,以将其转储至终端。完成了这一行上的所有操作之后,它读取文件的下一行,然后重复该过程直到它完成该文件。如同前面所提到的,默认输出是将每一行的内容输出到屏幕上。在这里,开始涉及到两个重要的因素―首先,输出可以被重定向到另一文件中,以保存变化;第二,源文件(默认地)保持不被修改。sed 默认读取整个文件并对其中的每一行进行修改。不过,可以按需要将操作限制在指定的行上。
该实用工具的语法为:
sed [options] '{command}' [filename]
在这篇文章中,我们将浏览最常用的命令和选项,并演示它们如何工作,以及它们适于在何处使用。
替换命令
sed 实用工具以及其它任何类似的编辑器的最常用的命令之一是用一个值替换另一个值。用来实现这一目的的操作的命令部分语法是:
's/{old value}/{new value}/'
因而,下面演示了如何非常简单地将 "tiger" 修改为 "wolf":
$ echo The tiger cubs will meet on Tuesday after school | sed
's/tiger/wolf/'
The wolf cubs will meet on Tuesday after school
$
Linux cut功能说明:显示每行从开头算起 num1 到 num2 的文字。
用法:cut -cnum1-num2 filename
使用权限:所有使用者
-c 和 -f 参数可以跟以下子参数:
m 第m个字符或字段
m- 从第m个字符或字段到文件结束
m-n 从第m个到第n个字符或字段
-n 从第1个到第n个字符或字段
命令用法:
cut -b list [-n] [file ...]
cut -c list [file ...]
cut -f list [-d delim][-s][file ...]
l 上面的-b、-c、-f分别表示字节、字符、字段(即byte、character、field);
l list表示-b、-c、-f操作范围,-n常常表示具体数字;
l file表示的自然是要操作的文本文件的名称;
l delim(英文全写:delimiter)表示分隔符,默认情况下为TAB;
l -s表示不包括那些不含分隔符的行(这样有利于去掉注释和标题)
上面三种方式中,表示从指定的范围中提取字节(-b)、或字符(-c)、或字段(-f)。
范围的表示方法:
N
只有第N项
N-
从第N项一直到行尾
N-M
从第N项到第M项(包括M)
-M
从一行的开始到第M项(包括M)
-
从一行的开始到结束的所有项
实例1:
shell>> cat example
test2
this is test1
shell>> cut -c0-6 example ## print 开头算起前 6 个字元
test2
this i
实例2:
我们经常会遇到需要取出分字段的文件的某些特定字段,例如 /etc/password就是通过":"分隔各个字段的。可以通过cut命令来实现。例如,我们希望将系统账号名保存到特定的文件,就可以:
cut -d: -f 1 /etc/passwd > /tmp/users
-d用来定义分隔符,默认为tab键,-f表示需要取得哪个字段
如:
使用|分隔
cut -d'|' -f2 1.test>2.test
使用:分隔
cut -d':' -f2 1.test>2.test
这里使用单引号或双引号皆可
有时我们经常会遇到这样一些问题:有一页电话号码薄,上面按顺序规则地写着人名、家庭住址、电话、备注等,此时我们只想取出所有人的名字和其对应的电话号码,你有几种方法可以实现呢
确实这种纵向定位的方式用常规办法难以实现,这时,cut就可以大显身手了。
What’s cut?
子曰:cut命令可以从一个文本文件或者文本流中提取文本列。
分享到:
相关推荐
资源名称:Linux Shell脚本学习基础视频资源目录:【】11a00d99b60c4e2eba3440b8aa3a6bdd【】linux_shell脚本编程_01认识shell,如何编写shell脚本和执行【】linux_shell脚本编程_02vivim简单的常用操作【】linux_...
### Shell脚本学习指南知识点详解 #### 一、Shell脚本概述 - **定义与作用**:Shell脚本是用于Unix/Linux系统中的自动化任务的一种编程语言。它通过一系列的命令来实现对系统的控制和管理,可以极大地提高工作效率...
**Shell脚本学习指南** Shell脚本是Linux和Unix系统中的强大工具,它允许用户通过编写脚本来自动化一系列命令操作,极大地提高了系统管理和任务执行的效率。本文将深入探讨shell脚本的基础知识,包括语法、变量、...
**Shell脚本学习指南** Shell脚本是一种在Unix/Linux操作系统中使用的编程语言,它允许用户通过命令行界面执行一系列操作,实现自动化任务处理。作为学习Shell脚本的指南,这本书籍旨在帮助读者深入理解Shell脚本...
### Shell脚本学习手册知识点概览 #### 一、Shell脚本基础 1. **Shell概念** - Shell是一个用C语言编写的程序,它作为用户与Linux系统的桥梁,提供了一个命令行接口来访问操作系统服务。 - Shell既是命令语言也...
这份“Shell脚本学习指南”涵盖了从基础到高级的多个方面,帮助初学者和经验丰富的开发者深入理解Shell脚本的精髓。 在开始学习之前,我们首先要明白什么是Shell。Shell是操作系统提供的一个用户界面,它接收用户...
以下是对"shell脚本学习指南-中文版"的详细知识点解析: 1. **Shell简介**:Shell是操作系统提供的一个用户界面,它允许用户输入命令并执行系统调用。常见的Shell有Bash(Bourne-Again SHell)、Sh、Csh、Ksh和Zsh...
这个“Shell脚本学习指南”资源显然旨在帮助初学者和进阶者更好地理解和掌握这一核心技术。 首先,我们需要理解什么是Shell。Shell是操作系统提供的一种用户界面,它允许用户通过命令行与操作系统内核交互。在Linux...
在“Shell脚本学习教程PDF版”中,你将深入理解Shell脚本的基本概念、语法结构以及高级特性。 首先,Shell脚本的基础包括变量、条件语句、循环结构和函数。变量是存储数据的地方,可以是文本、数字或者其他类型。在...
**SHELL脚本学习指南** 在信息技术领域,Shell脚本是一种强大的工具,尤其在Linux和Unix系统中,它被广泛用于自动化日常任务、系统管理以及软件部署。本指南将深入探讨Shell脚本的基础和高级概念,帮助你充分利用这...
这个“Shell脚本学习指南_中文版”涵盖了从基础到进阶的Shell脚本知识,是学习Linux Shell编程的理想资源。以下是基于标题、描述和标签的主要知识点: 1. **Shell的定义与作用**:Shell是Linux或Unix系统的命令解释...
这份"shell脚本学习资料"涵盖了使用Shell脚本进行系统管理、文件操作以及数据处理的核心概念。下面我们将深入探讨sed和awk这两个在Shell脚本中常用的命令。 **sed(Stream Editor)** sed是一种流编辑器,它能够...
这份"Linux Shell脚本学习文档"是针对初学者的一份详细教程,旨在帮助读者快速理解和掌握Bash Shell脚本的基本概念和用法。 首先,让我们从基础开始。在Shell脚本中,每一行都是一个命令或指令,可以执行诸如创建、...