1.s option
$ cat pets.txt This is my cat my cat's name is betty This is my dog my dog's name is frank This is my fish my fish's name is george This is my goat my goat's name is adam
sed "s/my/Fei's/g" pets.txt
sed "s/my/Fei's/g" pets.txt > fei_pets.txt
sed -i "s/my/Fei's/g" pets.txt
sed 's/^/#/g' pets.txt
sed 's/$/ --- /g' pets.txt
regex tips:
^ 表示一行的开头。如:/^#/ 以#开头的匹配。
$ 表示一行的结尾。如:/}$/ 以}结尾的匹配。
\< 表示词首。 如 \<abc 表示以 abc 为首的詞。
\> 表示词尾。 如 abc\> 表示以 abc 結尾的詞。
. 表示任何单个字符。
* 表示某个字符出现了0次或多次。
[ ] 字符集合。 如:[abc]表示匹配a或b或c,还有[a-zA-Z]表示匹配所有的26个字符。如果其中有^表示反,如[^a]表示非a的字符
$ cat html.txt:
<b>This</b> is what <span style="text-decoration: underline;">I</span> meant. Understand?
sed 's/<[^>]*>//g' html.txt
=>This is what I meant. Understand?
sed "3s/my/your/g" pets.txt #replace third row
sed "3,6s/my/your/g" pets.txt #replace third to sixth rows
$ cat my.txt This is my cat, my cat's name is betty This is my dog, my dog's name is frank This is my fish, my fish's name is george This is my goat, my goat's name is adam
sed 's/s/S/1' my.txt #replace only first 's'
sed 's/s/S/2' my.txt #replace only second 's'
sed 's/s/S/3g' my.txt #replace after third(contain) 's'
$ sed 's/\<Thi/Tha/g' my.txt Thas is my cat, my cat's name is betty Thas is my dog, my dog's name is frank Thas is my fish, my fish's name is george Thas is my goat, my goat's name is adam $ sed 's/his\>/hat/g' my.txt That is my cat, my cat's name is betty That is my dog, my dog's name is frank That is my fish, my fish's name is george That is my goat, my goat's name is adam
2.Multiple matching
sed '1,3s/my/your/g; 3,$s/This/That/g' my.txt
sed -e '1,3s/my/your/g' -e '3,$s/This/That/g' my.txt
#use & replace matched var
sed 's/my/[&]/g' my.txt
3.() matching
#use \1,\2,... replace matched ()
sed 's/This is my \([^,]*\),.*is \(.*\)/\1:\2/g' my.txt
4.sed command
1)N : Read/append the next line of input into the pattern space.
sed 'N;s/my/your/' pets.txt
sed 'N;s/\n/,/' pets.txt
2)add new row
a : after append row
i : before insert row
#specify row number,1 first isrow, $ is last row
sed "1 i This is my monkey, my monkey's name is wukong" my.txt
sed "1 a This is my monkey, my monkey's name is wukong" my.txt
#pattern match
sed "/fish/a This is my monkey, my monkey's name is wukong" my.txt
sed "/my/a ----" my.txt
3)c : replace matched row
sed "2 c This is my monkey, my monkey's name is wukong" my.txt
sed "2 c This is my monkey, my monkey's name is wukong" my.txt
4)d : delete matched rows
sed '/fish/d' my.txt
sed '2d' my.txt
sed '2,$d' my.txt
5)p : print rows,like grep
sed -n '/fish/p' my.txt
#print from dog to fish rows
sed -n '/dog/,/fish/p' my.txt
sed -n '1,/fish/p' my.txt
sed -n '/fish/,/$/p' my.txt
5.Other knowledge points
1)Pattern Space
-n parameter
2)Address
#relative position, +3
sed '/dog/,+3s/^/# /g' pets.txt
3)Command Package
sed '3,6 {/This/d}' pets.txt
sed '3,6 {/This/{/fish/d}' pets.txt
sed '1,$ {/This/d; s/^ *//g' pets.txt
4)Hold Space
g|G : rewrite|append content from hold space to pattern spac.
h|H : rewrite|append content from pattern space to hold space
x : swap content between pattern space and hold space
$ cat t.txt one two three
$sed 'H;g' t.txt
$sed '1!G;h;$!d' t.txt
Refers:
http://coolshell.cn/articles/9104.html
相关推荐
### Sed 教程:添加、插入、替换及计算文件行数 #### 概述 `sed` 是一个强大的 Unix/Linux 下的流编辑器,能够处理文本文件中的模式匹配与替换等操作。本教程将深入介绍如何使用 `sed` 来执行如添加、插入、替换...
标题与描述:“Sed - An Introduction and Tutorial by Bruce Barnett” Sed,即Stream Editor(流编辑器),是一种功能强大的文本处理工具,广泛应用于Unix和类Unix系统中。它能够读取输入流,对其进行一系列预...
SED安装教程 该存储库包含一系列iPython笔记本,它们将教您如何执行非常基本的SED拟合。 假设您已熟悉基本概念(例如,已阅读第2部分),现在想开始在Python中实现这些概念。 我编写该教程是希望对希望开始编写自己...
The book begins with an overview and a tutorial that demonstrate a progression in functionality from grep to sed to awk. sed and awk share a similar command-line syntax, accepting user instructions in...
- **高级命令**:grep、awk、sed等用于文本处理和数据过滤。 #### 五、文件和目录管理 - **创建文件和目录**:使用touch、mkdir等命令。 - **文件操作**:移动、复制、删除文件使用mv、cp、rm等命令。 - **查看...
- **文本处理**:`grep`(搜索字符串)、`sed`(流编辑器)、`awk`(强大的文本处理工具)等。 - **系统管理**:`ps`(显示进程状态)、`kill`(终止进程)、`top`(显示系统负载和进程状态)等。 #### 进程管理 - ...
- **第8章:流编辑器sed**:sed是一种强大的文本流编辑器,可以用来过滤和转换文本输入,广泛应用于文本处理领域。 ### 七、进程管理 - **第9章:进程与环境变量**:这一章节讲解了如何管理和监控Linux系统中的...
【Unix教程】是针对计算机操作系统领域的一门重要课程,...记得在学习过程中,亲自动手实践,结合README.md中的指引和Unix Tutorial - TsingHua.rar中的资料,将理论知识转化为实际技能。祝你在Unix的世界里探索愉快!
2. **Sed - An Introduction and Tutorial.mht, Sed - An Introduction and Tutorial.pdf**:Sed(流编辑器)是UNIX/Linux系统中的一个强大工具,用于对文本流进行操作,如替换、删除、打印等。这些文件提供了一个...
Shell教程书,主要针对初学者,旨在帮助读者掌握Unix/Linux操作系统中的Shell脚本编写技能。Shell是一种命令行解释器...在阅读“shell-tutorial”这个教程时,结合实际操作,将有助于更好地理解和掌握Shell脚本的精髓。
《Linux:Rute用户的教程和博览会》(LINUX: Rute User's Tutorial and Exposition)是Paul Sheer编著的一本经典Linux教材,该书尝试教会读者如何以Linux的思维方式来理解这一操作系统。书中内容覆盖了从基础命令到...