博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
sed学习---字符替换
阅读量:2183 次
发布时间:2019-05-02

本文共 3716 字,大约阅读时间需要 12 分钟。

[service@gan .ssh]$ uname -a

Linux gan 2.4.21-20.EL #1 SMP Wed Aug 18 20:34:58 EDT 2004 x86_64 x86_64 x86_64 GNU/Linux

gan.cublog.cn

[service@gan .ssh]$ sed -V

GNU sed version 4.0.7

Copyright (C) 2003 Free Software Foundation, Inc.

This is free software; see the source for copying conditions.  There is NO

warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE,

to the extent permitted by law.

1>. 替换普通字符

[service@gan .ssh]$ cat file.txt

1A1A

2B2B

3C3C

gan.cublog.cn

默认就替换第一个字符

[service@gan .ssh]$ sed 's/1/X/' file.txt

XA1A

2B2B

3C3C

指定只替换第2个字符

[service@gan .ssh]$ sed 's/1/X/2' file.txt  

1AXA

2B2B

3C3C

替换所有字符

[service@gan .ssh]$ sed 's/1/X/g' file.txt 

XAXA

2B2B

3C3C

2>. 替换特殊字符

注意:替换中sed使用的符号全部是""符号不是''的

[service@gan .ssh]$ cat sp.txt

A"/`!B\C'*&%#@~()?{}|+_-=:;K

[service@gan .ssh]$ sed "s/\"/X/" sp.txt

AX/`!B\C'*&%#@~()?{}|+_-=:;K

[service@gan .ssh]$ sed "s/\//X/" sp.txt 

A"X`!B\C'*&%#@~()?{}|+_-=:;K

[service@gan .ssh]$ sed "s/\`/X/" sp.txt 

A"/X!B\C'*&%#@~()?{}|+_-=:;K

[service@gan .ssh]$ sed "s/\!/X/" sp.txt 

A"/`XB\C'*&%#@~()?{}|+_-=:;K

gan.cublog.cn

[service@gan .ssh]$ sed "s/\\\/X/" sp.txt  

A"/`!BXC'*&%#@~()?{}|+_-=:;K

[service@gan .ssh]$ sed "s/'/X/" sp.txt   

A"/`!B\CX*&%#@~()?{}|+_-=:;K

[service@gan .ssh]$ sed "s/*/X/" sp.txt 

A"/`!B\C'X&%#@~()?{}|+_-=:;K

[service@gan .ssh]$ sed "s/

A"/`!B\C'*X>&%#@~()?{}|+_-=:;K

[service@gan .ssh]$ sed "s/>/X/" sp.txt 

A"/`!B\C'*X&%#@~()?{}|+_-=:;K

[service@gan .ssh]$ sed "s/&/X/" sp.txt 

A"/`!B\C'*X%#@~()?{}|+_-=:;K

[service@gan .ssh]$ sed "s/%/X/" sp.txt 

A"/`!B\C'*&X#@~()?{}|+_-=:;K

[service@gan .ssh]$ sed "s/#/X/" sp.txt 

A"/`!B\C'*&%X@~()?{}|+_-=:;K

[service@gan .ssh]$ sed "s/@/X/" sp.txt 

A"/`!B\C'*&%#X~()?{}|+_-=:;K

[service@gan .ssh]$ sed "s/~/X/" sp.txt 

A"/`!B\C'*&%#@X()?{}|+_-=:;K

[service@gan .ssh]$ sed "s/(/X/" sp.txt   

A"/`!B\C'*&%#@~X)?{}|+_-=:;K

[service@gan .ssh]$ sed "s/)/X/" sp.txt 

A"/`!B\C'*&%#@~(X?{}|+_-=:;K

[service@gan .ssh]$ sed "s/?/X/" sp.txt 

A"/`!B\C'*&%#@~()X{}|+_-=:;K

[service@gan .ssh]$ sed "s/{/X/" sp.txt 

A"/`!B\C'*&%#@~()?X}|+_-=:;K

[service@gan .ssh]$ sed "s/}/X/" sp.txt 

A"/`!B\C'*&%#@~()?{X|+_-=:;K

[service@gan .ssh]$ sed "s/|/X/" sp.txt 

A"/`!B\C'*&%#@~()?{}X+_-=:;K

[service@gan .ssh]$ sed "s/+/X/" sp.txt 

A"/`!B\C'*&%#@~()?{}|X_-=:;K

[service@gan .ssh]$ sed "s/_/X/" sp.txt 

A"/`!B\C'*&%#@~()?{}|+X-=:;K

[service@gan .ssh]$ sed "s/-/X/" sp.txt 

A"/`!B\C'*&%#@~()?{}|+_X=:;K

[service@gan .ssh]$ sed "s/=/X/" sp.txt 

A"/`!B\C'*&%#@~()?{}|+_-X:;K

[service@gan .ssh]$ sed "s/:/X/" sp.txt 

A"/`!B\C'*&%#@~()?{}|+_-=X;K

[service@gan .ssh]$ sed "s/;/X/" sp.txt 

A"/`!B\C'*&%#@~()?{}|+_-=:XK

gan.cublog.cn

3>. 对应多个替换

[service@gan .ssh]$ cat file.txt

1A1AA1

2B2B

3C3C

12345678

23456789

[service@gan .ssh]$ sed 's/123/ABC/' file.txt

1A1AA1

2B2B

3C3C

ABC45678

23456789

gan.cublog.cn

对应的一次全部替换:1->A,2->B,3->C

[service@gan .ssh]$ sed 'y/123/ABC/' file.txt 

AAAAAA

BBBB

CCCC

ABC45678

BC456789

4>. 在sed替换中使用正侧表达式

要了解下面的东西最好先了解正侧表达式的,该功能可以让sed功能大大增强。

下面的替换我全部采用替换成X字符吧,当然如果你需要替换成空那就把X去掉就可以了(起到删除字符的作用,其实它还是一个字符替换的)

[service@gan .ssh]$ cat file.txt

1A1AA1

2B2B

3C3C D

   12345678 M

23456789

在每行的开头插入X字符

[service@gan .ssh]$ sed 's/^/X/' file.txt 

X1A1AA1

X2B2B

X 3C3C D

X   12345678 M

X23456789

在每行的结尾插入X字符

[service@gan .ssh]$ sed 's/$/X/' file.txt 

1A1AA1X

2B2BX

3C3C DX

   12345678 MX

23456789X

将每行的开头的空格替换成X

[service@gan .ssh]$ sed 's/^ /X/' file.txt 

1A1AA1

2B2B

X3C3C D

X  12345678 M

23456789

将每行开头的多个(一个或0个)空格替换成一个X字符

[service@gan .ssh]$ sed 's/^ */X/' file.txt

X1A1AA1

X2B2B

X3C3C D

X12345678 M

X23456789

[service@gan .ssh]$ sed 's/^[ ]*/X/' file.txt

X1A1AA1

X2B2B

X3C3C D

X12345678 M

X23456789

将每行包含有空格的字符替换成X

[service@gan .ssh]$ sed 's/^[ ][ ]*/X/' file.txt

1A1AA1

2B2B

X3C3C D

X12345678 M

23456789

对于sed在字符替换部分写的可能还不是很全面,慢慢添加吧。。。

转载地址:http://fsokb.baihongyu.com/

你可能感兴趣的文章
走进JavaWeb技术世界1:JavaWeb的由来和基础知识
查看>>
走进JavaWeb技术世界2:JSP与Servlet的曾经与现在
查看>>
走进JavaWeb技术世界3:JDBC的进化与连接池技术
查看>>
走进JavaWeb技术世界4:Servlet 工作原理详解
查看>>
走进JavaWeb技术世界5:初探Tomcat的HTTP请求过程
查看>>
走进JavaWeb技术世界6:Tomcat5总体架构剖析
查看>>
走进JavaWeb技术世界7:Tomcat和其他WEB容器的区别
查看>>
走进JavaWeb技术世界9:Java日志系统的诞生与发展
查看>>
走进JavaWeb技术世界10:从JavaBean讲到Spring
查看>>
走进JavaWeb技术世界11:单元测试框架Junit
查看>>
走进JavaWeb技术世界12:从手动编译打包到项目构建工具Maven
查看>>
走进JavaWeb技术世界13:Hibernate入门经典与注解式开发
查看>>
走进JavaWeb技术世界14:Mybatis入门
查看>>
走进JavaWeb技术世界16:极简配置的SpringBoot
查看>>
初探Java设计模式1:创建型模式(工厂,单例等)
查看>>
初探Java设计模式2:结构型模式(代理模式,适配器模式等)
查看>>
初探Java设计模式3:行为型模式(策略,观察者等)
查看>>
初探Java设计模式4:一文带你掌握JDK中的设计模式
查看>>
初探Java设计模式5:一文了解Spring涉及到的9种设计模式
查看>>
Java集合详解1:一文读懂ArrayList,Vector与Stack使用方法和实现原理
查看>>