Linux笔记

sed常用命令

1.把开头/结尾为str1的行替换为str2:    

sed -i 's/^str1.*/str2/'  filename  ###以str1开头
sed -i 's/.*str1$/str2/'  filename  ###以str1结尾
sed -i 's/.*str1.*/str2/'  filename  ###含有str1

2.将文件中含 "arr" 字符串的数据行中的 "str1" 字符串 , 替换成为 "str2" 字符串:

sed -e '/arr/s/str1/str2/g' filename  ##含有g说明是全局替换

3.将文件中第 5 行数据 , 替换成句子"hello world!!!"

sed -e '5chello world!!!' filename

4.将文件中 1 至 100 行 , 替换成如下两行:

how are you?
my name is feige.

命令如下:

sed -e '1,100c
How are you?
my name is feige.
' filename

5. 删除空行:

sed -e '/^ *$/d' filename   ### *号前面有一个空格符哦~
sed '/^$/d' file

6. 删除含有指定字符串str的行:

sed -f '/str/d' filename

7. 将文件中的前 100 数据 , 搬到文件中第 300 后输出。其命令如下:

sed -f mov.txt  targetfile  ## targetfile是要操作的文件,mov.txt里面放的是操作指令

其中mov.txt文档的内容为:

1,100{
H
d
}
300G

8. 将from.txt文件中含 "phi" 字符串的数据行 , 移动到to.txt文件中储存。其命令如下:

sed -e '/phi/w to.txt'  from.txt

9. 将 from.txt文件内容 , 移动至to.txt文件中含 "beta" 字符串的数据行。其命令如下:

sed -e '/beta/r  from.txt' to.txt

10. 将文件中含 "omega" 字符串的数据输出:

sed -f grep.txt  targetfile

其中grep.txt的内容如下:

/omega/b
N
h
s/.*
//
/omega/b
g
D

 11. 将当前目录下包含jack串的文件中,jack字符串替换为tom

sed -i "s/jack/tom/g" `grep "jack" -rl ./`

     

 

原文地址:https://www.cnblogs.com/xinzi7/p/7294608.html