ZhangZhihui's Blog  

Search and print matched lines:

scnzzh@ZUBT1:~/zzh$ sed -n '/ExecStart/p' docker.service 
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

 

Search and replace pattern:

scnzzh@ZUBT:~$ echo 'app[01:100].com' | sed 's/.*\[/\[/'
[01:100].com

 

Search and replace in file:

scnzzh@ZUBT1:~/zzh$ grep '\-H fd://' test.service
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
scnzzh@ZUBT1:~/zzh$ sed -i 's/-H fd:\/\//-H fd:\/\/ -H tcp:\/\/10.0.2.5:2375/' test.service
scnzzh@ZUBT1:~/zzh$ grep '\-H fd://' test.service
ExecStart=/usr/bin/dockerd -H fd:// -H tcp://10.0.2.5:2375 --containerd=/run/containerd/containerd.sock

 

Multiple search and delete following 2 lines in file:

sed -i -e '/\(zabbix_wrapper.pl\|type="thread"\|type="collect"\)/,+2d' $line

 

'<' and '>' don't need to be escaped:

sed -i 's/<depend>PARALLEL_THREAD<\/depend>/<depend>NONE<\/depend>/g' $line

 

Change position:

cat test1
first:second
one:two
sed 's/\(.*\):\(.*\)/\2:\1/' test1
second:first
two:one

 

Use semicolon to execute multiple commands:

复制代码
cnzzh@zubt1:~/zzh$ seq 6
1
2
3
4
5
6
scnzzh@zubt1:~/zzh$ seq 6 | sed '1d;3d;5d'
2
4
6
复制代码

 

Replace multiple blank lines with one:

复制代码
scnzzh@zubt1:~/zzh$ cat a.txt
1


2


3





4

5
scnzzh@zubt1:~/zzh$ sed '/^$/N;/^\n$/D' a.txt
1

2

3

4

5
复制代码

$      Match the last line.

d Delete pattern space. Start next cycle.

D If pattern space contains no newline, start a normal new cycle as if the d command was issued. Otherwise, delete text in the pattern space up to the first newline, and restart cycle with the resultant pattern space, without reading a new line of input.

n N    Read/append the next line of input into the pattern space.

 

Remove all blank lines:

scnzzh@zubt1:~/zzh$ sed '/^$/d' a.txt
1
2
3
4
5

 

Remove lines those only contain whitespaces:

复制代码
scnzzh@zubt1:~/zzh$ cat a.txt
        

aaa
    bbb
        

ccc
scnzzh@zubt1:~/zzh$ sed -r '/^\s*$/d' a.txt
aaa
    bbb
ccc
复制代码

Replace multiple whitespace lines to one line:

scnzzh@zubt1:~/zzh$ sed '/^\s*$/N;/^\s*$/D' a.txt

aaa
    bbb

ccc

 

Replace values of parameters/variables:

复制代码
/home/scnzzh/zzh $> cat b.txt
binpath=/PATH/TO/SCRIPTS/
aa_binpath=/PATH/TO/AA/

/home/scnzzh/zzh $> sed "s/binpath=\(.*\)/binpath=aaa/" b.txt
binpath=aaa
aa_binpath=aaa

/home/scnzzh/zzh $> sed "s/^binpath=\(.*\)/binpath=aaa/" b.txt
binpath=aaa
aa_binpath=/PATH/TO/AA/
复制代码

 

posted on   ZhangZhihuiAAA  阅读(104)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
 
点击右上角即可分享
微信分享提示