正则表达式跟sed命令(草稿)

正则表达式
. 匹配任何单个的字符
* 匹配在它之前的任何数目的单个字符(可以为正则表达式,如.*代表匹配任一字符的任意长度)
^ 匹配紧接着的正则表达式,在行或字符串的起始处
$ 匹配前面的正则表达式,在字符串或行结尾处
[...] 匹配方括号内的任一字符((-)指的是连续字符的范围,(^)则由反向意义)
\{n,m\} 匹配在它前面的单个字符重现的次数区间。\{n\}指的是重现n次;
\{n,\}则为至少重现n次,\{n,m\}为重现n至m次
\{ \} 将\与\之间的模式存储在特殊的“保留空间”(最多9个)。可通过\1至\9使用存储的模式
如:\{ab\}.*\1表示ab组合的两次重现,中间可存在任何数目的字符。
{n,m} 与\{n,m\}一样,ERE(扩展的正则表达式)
+ 匹配前面正则表达式的一个或多个实例 ERE
? 匹配前面正则表达式的0个或一个实例 ERE
| 匹配于|符号前或后的正则表达式 ERE fast|slow(可以匹配序列)
() 匹配于方括号里面的正则表达式群 ERE

\(ab\)\(cd\)[def]*\2\1
\(why\).*\1
\([[:alpha:]_][[:alnum:]_]*\) = \1
\(["‘]\).*\1

sed命令

sed [option] ‘command‘ input_file

常用的option
-n 只列出经过sed处理的那些行
-e 直接在指令列模式上进行sed的动作编辑
-f filename 直接将sed的动作写在一个文件内
-r 让sed支持扩展的正则表达式
-i 直接修改读取的文件内容,而不是由屏幕输出

选中要处理的行
/PATTERN/ 表示符合正则表达式PATTERN的行
1 or 2 ... $ 表示第几行,$表示最后一行
1,$ 表示第一行到最后一行

常用的命令有以下几种(使用命令前应参考上面选中相应的行):
a \ 在当前选择的行的后面加上字符串
sed ‘1a \add one‘ test.txt 在第一行后面添加一行add one
sed ‘1,$a \add one‘ test.txt 在第一行到最后一行的所有行后面添加一行add one
sed ‘/first/a \ add one‘ test.txt 在包含first的行的后面添加一行..

c \ 将当前选中的行替换成字符串
sed ‘$c \add one‘ test.txt 将最后一行替换成字符串add one
sed ‘4,$c \add one‘ test.txt 将第四行到最后一行的内容替换成add one
sed ‘/^ha.*day$/c \add one‘ test.txt 将以ha开头,以day结尾的行替换成add one

d 删除当前选中的行

i \ 在当前选中的行的前面插入字符串

p 打印当前选择的行到屏幕上

s/PATTERN/string/[g|i] 将符合PATTERN的字符串替换成string
sed ‘/line/text/g‘ 将所有的line替换成test g(global) 不加g则只会替换本行第一个line
sed ‘s/\(.*\)line$/\1/g‘ 删除所有line结尾的行中结尾的line

时间: 2024-08-04 09:06:15

正则表达式跟sed命令(草稿)的相关文章

正则表达式和sed命令的用法

一.            正则表达式:   正则表达式(或称Regular Expression,简称RE)就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式. 该模式描述在查找文字主体时待匹配的一个或多个字符串. 正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配.简单的说,正则表示式就是处理字符串的方法,它是以行为单位来进行字符串的处理行为,正则表示式通过一些特殊符号的辅助,可以让使用者轻易的达到搜寻/删除/取代某特定字符串的处理程序.vim.gre

Sed 命令详解 正则表达式元字符

1.简介 sed是非交互式的编辑器.它不会修改文件,除非使用shell重定向来保存结果.默认情况下,所有的输出行都被打印到屏幕上. sed编辑器逐行处理文件(或输入),并将结果发送到屏幕.具体过程如下:首先sed把当前正在处理的行保存在一个临时缓存区中(也称为模式空间),然后处理临时缓冲区中的行,完成后把该行发送到屏幕上.sed每处理完一行就将其从临时缓冲区删除,然后将下一行读入,进行处理和显示.处理完输入文件的最后一行后,sed便结束运行.sed把每一行都存在临时缓冲区中,对这个副本进行编辑,

linux sed命令中的正则表达式问号、加号、圆括号等需要转义

linux sed命令内的正则表达式语法分两种,一种叫Basic (BRE) Syntax,另一种叫Extended (ERE) Syntax.默认使用的是BRE. 这个BRE就是一个简化版,语法稍微有点不一样,问号.加号.圆括号.花括号和竖线没有特殊含义,就代表字符本身,如果要原本定义的实现特殊含义,需要用反斜杠(\)转义……详情请见: https://www.gnu.org/software/sed/manual/html_node/BRE-vs-ERE.html#BRE-vs-ERE

sed 命令+正则表达式

sed是一个非交互性性文本编辑器, 它编辑文件或标准输入导出的文件拷贝.标准输入可能是来自键盘.文件重定向.字符串或变量,或者是一个管道文件.sed可以随意编辑小或大的文件,有许多 sed命令用来编辑.删除,并允许做这项工作时不在现场.sed一次性处理所有改变,因而变得很有效,对用户来说,最重要的是节省了时间.sed必须通过行号和正则表达式指定要改变的文本行 sed怎样读取数据: sed从文件的一个文本行或从标准输入的几种格式中读取数据,将之拷贝到一个编辑缓冲区,然后读命令行或脚本的第一条命令,

sed命令和正则表达式

sed命令和正则表达式 sed是一种在线的,非交互式的编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时缓冲区中,成为模式空间,接着用sed命令处理缓冲区的内容.处理完,把缓冲区的内容送往屏幕.sed支持正则表达式与grep一样,sed在文件中查找模式时也可以使用正则表达式(RE)和各种元字符.正则表达式是括在斜杠间的模式,>用于查找和替换,以下是sed支持的元字符使用基本元字符集 ^ $ [] [^] \<\> () {} 使用扩展元字符 ?+ {} | () sed命令:

sed命令的正则表达式实践

1. 取系统ip [[email protected] logs]# ifconfig eth3 eth3 Link encap:Ethernet HWaddr 08:00:27:4C:6F:AD inet addr:192.168.0.109 Bcast:192.168.0.255 Mask:255.255.255.0 UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1 RX packets:18603 errors:0 dropped

正则表达式和grep命令的用法

正则表达式和grep命令的用法: 一.正则表达式: 正则表达式(也称为regular Expression,简称RE)就是由普通字符(例如字符a到z)以及特殊字符(称之为元字符)组成的文字模式. 该模式描述在查找文字主体时待匹配的一个或多个字符串. 正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配.简单的说,正则表示式就是处理字符串的方法,它是以行为单位来进行字符串的处理行为,正则表示通过一些特殊符号的辅助,可以让使用者轻易的达到搜寻/删除/取代某特定字符串的处理程序.vim.gr

学习笔记之sed命令使用

一.概述 1.  sed 全称为Stream Editor,就是行编辑器,意味着一次只处理一行文本,sed将被匹配到            的行放到自己特定的空间(通常称为模式空间)中进行编辑:然后再根据结果进行输出显示: 2.  在sed中还有一段空间称为保持空间,sed模式空间中的内容可以与保持空间的内容可以进            行自由互换,实际工作中用处很少,仅作参考: Sed工作流程如图 二.sed命令使用 sed [OPTION]... 'script' [input-file].

sed命令

文本处理三剑客: grep, egrep, fgrep:文本过滤器 sed:Stream EDitor,流编辑器,行     pattem space:模式空间.(基础)     hold space:保持空间 awk:文本格式化工具,报告生成器 语法 sed [OPTION]...  'script'  [input-file] ... script:     地址定界编辑命令         :%s/ 常用选项: -n:不输出模式空间中的内容至屏幕: -e script, --express