本教程操作环境:linux7.3系统、dell g3电脑。
linux中sed命令怎么实现替换linux sed 命令是利用脚本来处理文本文件。
sed 可依照脚本的指令来处理、编辑文本文件。
sed 主要用来自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等。
语法
sed [-hnv][-e<script>][-f<script文件>][文本文件]
参数说明:
-e<script>或--expression=<script> 以选项中指定的script来处理输入的文本文件。
-f<script文件>或--file=<script文件> 以选项中指定的script文件来处理输入的文本文件。
-h或--help 显示帮助。
-n或--quiet或--silent 仅显示script处理后的结果。
-v或--version 显示版本信息。
动作说明:
a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
d :删除,因为是删除啊,所以 d 后面通常不接任何东东;
i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
p :打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~
s :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 就是啦!
示例如下:
将第2-5行的内容取代成为『no 2-5 number』呢?
[root@www ~]# nl /etc/passwd | sed '2,5c no 2-5 number'1 root:x:0:0:root:/root:/bin/bashno 2-5 number6 sync:x:5:0:sync:/sbin:/bin/sync.....(后面省略).....
除了整行的处理模式之外, sed 还可以用行为单位进行部分数据的搜寻并取代。基本上 sed 的搜寻与替代的与 vi 相当的类似!他有点像这样:
sed 's/要被取代的字串/新的字串/g'
先观察原始信息,利用 /sbin/ifconfig 查询 ip
[root@www ~]# /sbin/ifconfig eth0eth0 link encap:ethernet hwaddr 00:90:cc:a6:34:84inet addr:192.168.1.100 bcast:192.168.1.255 mask:255.255.255.0inet6 addr: fe80::290:ccff:fea6:3484/64 scope:linkup broadcast running multicast mtu:1500 metric:1.....(以下省略).....
本机的ip是192.168.1.100。
将 ip 前面的部分予以删除
[root@www ~]# /sbin/ifconfig eth0 | grep 'inet addr' | sed 's/^.*addr://g'192.168.1.100 bcast:192.168.1.255 mask:255.255.255.0
接下来则是删除后续的部分,亦即: 192.168.1.100 bcast:192.168.1.255 mask:255.255.255.0
将 ip 后面的部分予以删除
[root@www ~]# /sbin/ifconfig eth0 | grep 'inet addr' | sed 's/^.*addr://g' | sed 's/bcast.*$//g'192.168.1.100
相关推荐:《linux视频教程》
以上就是linux中sed命令怎么实现替换的详细内容。
