三劍客-sed小結

 sed是一款流編輯器工具,通常我們用來對文本進行過濾與替換操作,特別是當你想要對幾十個配置文件做統一更改時,你會感受到sed的魅力。它一次處理一行內容。處理時,把當前處理的行存儲在臨時緩沖區中,稱為“模式空間”(pattern space),接著用sed命令處理緩沖區中的內容,處理完成后,把緩沖區的內容送往屏幕。接著處理下一行,這樣不斷重復,直到文件末尾。文件內容并沒有 改變,除非你使用重定向存儲輸出。sed的工作流程如下圖所示:

sed工作流程.png

sed:Stream EDitor,行編輯器

用法: sed [選項]… {腳本(如果沒有其他腳本)} [輸入文件]…

常用選項:

-e:多點編輯

-f /PATH/TO/SCRIPT_FILE:從指定文件中讀取編輯腳本:

-r:支持使用擴展正則表達式

-n:不輸出模式中的內容至屏幕

-i: 原處編輯

?。喝》礂l件

s/查找的條件/替換的內容/:

s@@@ s###


編輯命令:

a,append表示追加指令

i,insert表示插入指令

d,delete表示刪除指令

s,substitution表示替換指令

p,顯示模式空間中的內容

w /path/to/somefile:保存模式空間中的內容到指定文件中

r /path/to/somefile: 讀取指定文件的文件流至模式空間中的行(能匹配到的行)

=:為模式空間中的行打印行號

sed.png

關于d刪除的用法:

[root@C67-X64-A1 ~]# cat /etc/fstab 
#
# /etc/fstab
# Created by anaconda on Tue Jul  5 23:40:37 2016
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=922eb46f-7e6e-4670-8bf1-6f9f1b05a053 /                       ext4    defaults        1 1
UUID=3881dbb7-5500-4eff-ba82-17651d436ce5 /boot                   ext4    defaults        1 2
UUID=419bb1cd-93b2-403b-9bf2-847d3072248b /tmp                    ext4    defaults        1 2
UUID=bcb87417-3008-4fcc-80d7-41c3ef9ff96c swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0

# 刪除以UUID開頭的行:

[root@C67-X64-A1 ~]# sed '/^UUID/d' /etc/fstab 
#
# /etc/fstab
# Created by anaconda on Tue Jul  5 23:40:37 2016
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0

# 刪除以#開頭的行

[root@C67-X64-A1 ~]# sed '/^#/d' /etc/fstab 
UUID=922eb46f-7e6e-4670-8bf1-6f9f1b05a053 /                       ext4    defaults        1 1
UUID=3881dbb7-5500-4eff-ba82-17651d436ce5 /boot                   ext4    defaults        1 2
UUID=419bb1cd-93b2-403b-9bf2-847d3072248b /tmp                    ext4    defaults        1 2
UUID=bcb87417-3008-4fcc-80d7-41c3ef9ff96c swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
You have new mail in /var/spool/mail/root

# 刪除空白行

[root@C67-X64-A1 ~]# sed '/^$/d' /etc/fstab 
#
# /etc/fstab
# Created by anaconda on Tue Jul  5 23:40:37 2016
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=922eb46f-7e6e-4670-8bf1-6f9f1b05a053 /                       ext4    defaults        1 1
UUID=3881dbb7-5500-4eff-ba82-17651d436ce5 /boot                   ext4    defaults        1 2
UUID=419bb1cd-93b2-403b-9bf2-847d3072248b /tmp                    ext4    defaults        1 2
UUID=bcb87417-3008-4fcc-80d7-41c3ef9ff96c swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0

# 在/tmp/fst的第二行后面插入"wanwan=3"

[root@C67-X64-A1 ~]# sed -i '2a wanwan=3' /tmp/fst 
You have new mail in /var/spool/mail/root
[root@C67-X64-A1 ~]# cat /tmp/fst 
#
wanwan=3
# /etc/fstab
# Created by anaconda on Tue Jul  5 23:40:37 2016
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=922eb46f-7e6e-4670-8bf1-6f9f1b05a053 /                       ext4    defaults        1 1
UUID=3881dbb7-5500-4eff-ba82-17651d436ce5 /boot                   ext4    defaults        1 2
UUID=419bb1cd-93b2-403b-9bf2-847d3072248b /tmp                    ext4    defaults        1 2
UUID=bcb87417-3008-4fcc-80d7-41c3ef9ff96c swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0

# 將“wanwan=3”替換成“wanwan=5”

[root@C67-X64-A1 ~]# sed -i 's/wanwan=3/wanwan=5/g' /tmp/fst 
[root@C67-X64-A1 ~]# cat /tmp/fst 
#
I am the third
I am the forth/p
wanwan=5
# /etc/fstab
# Created by anaconda on Tue Jul  5 23:40:37 2016
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=922eb46f-7e6e-4670-8bf1-6f9f1b05a053 /                       ext4    defaults        1 1
UUID=3881dbb7-5500-4eff-ba82-17651d436ce5 /boot                   ext4    defaults        1 2
UUID=419bb1cd-93b2-403b-9bf2-847d3072248b /tmp                    ext4    defaults        1 2
UUID=bcb87417-3008-4fcc-80d7-41c3ef9ff96c swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0

# 刪除1-5行的內容,i(inplace)直接就可以生效了,建議先測試后,然后再用“-i”參數

[root@C67-X64-A1 ~]# sed -i '1,5d' /tmp/fst 
[root@C67-X64-A1 ~]# cat /tmp/fst 
# /etc/fstab
# Created by anaconda on Tue Jul  5 23:40:37 2016
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=922eb46f-7e6e-4670-8bf1-6f9f1b05a053 /                       ext4    defaults        1 1
UUID=3881dbb7-5500-4eff-ba82-17651d436ce5 /boot                   ext4    defaults        1 2
UUID=419bb1cd-93b2-403b-9bf2-847d3072248b /tmp                    ext4    defaults        1 2
UUID=bcb87417-3008-4fcc-80d7-41c3ef9ff96c swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0

# 在UUID的行后,直接加上“TYPE=test”

[root@C67-X64-A1 ~]# cat /tmp/fst 
# /etc/fstab
# Created by anaconda on Tue Jul  5 23:40:37 2016
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=922eb46f-7e6e-4670-8bf1-6f9f1b05a053 /                       ext4    defaults        1 1
UUID=3881dbb7-5500-4eff-ba82-17651d436ce5 /boot                   ext4    defaults        1 2
UUID=419bb1cd-93b2-403b-9bf2-847d3072248b /tmp                    ext4    defaults        1 2
UUID=bcb87417-3008-4fcc-80d7-41c3ef9ff96c swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
[root@C67-X64-A1 ~]# sed '/^UUID/a TYPE=test' /tmp/fst 
# /etc/fstab
# Created by anaconda on Tue Jul  5 23:40:37 2016
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=922eb46f-7e6e-4670-8bf1-6f9f1b05a053 /                       ext4    defaults        1 1
TYPE=test
UUID=3881dbb7-5500-4eff-ba82-17651d436ce5 /boot                   ext4    defaults        1 2
TYPE=test
UUID=419bb1cd-93b2-403b-9bf2-847d3072248b /tmp                    ext4    defaults        1 2
TYPE=test
UUID=bcb87417-3008-4fcc-80d7-41c3ef9ff96c swap                    swap    defaults        0 0
TYPE=test
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0

在#行開頭的后面添加一行內容

[root@C67-X64-A1 ~]# sed '/^#/a \#我們需要努力!' /tmp/fst 
# /etc/fstab
#我們需要努力!
# Created by anaconda on Tue Jul  5 23:40:37 2016
#我們需要努力!
#
#我們需要努力!
# Accessible filesystems, by reference, are maintained under '/dev/disk'
#我們需要努力!
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#我們需要努力!
#
#我們需要努力!
UUID=922eb46f-7e6e-4670-8bf1-6f9f1b05a053 /                       ext4    defaults        1 1
UUID=3881dbb7-5500-4eff-ba82-17651d436ce5 /boot                   ext4    defaults        1 2
UUID=419bb1cd-93b2-403b-9bf2-847d3072248b /tmp                    ext4    defaults        1 2
UUID=bcb87417-3008-4fcc-80d7-41c3ef9ff96c swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0

在#行開頭的前面添加一行內容"我們不要放棄!"

[root@C67-X64-A1 ~]# sed '/^#/i \#我們不要放棄!' /tmp/fst 
#我們不要放棄!
# /etc/fstab
#我們不要放棄!
# Created by anaconda on Tue Jul  5 23:40:37 2016
#我們不要放棄!
#
#我們不要放棄!
# Accessible filesystems, by reference, are maintained under '/dev/disk'
#我們不要放棄!
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#我們不要放棄!
#
UUID=922eb46f-7e6e-4670-8bf1-6f9f1b05a053 /                       ext4    defaults        1 1
UUID=3881dbb7-5500-4eff-ba82-17651d436ce5 /boot                   ext4    defaults        1 2
UUID=419bb1cd-93b2-403b-9bf2-847d3072248b /tmp                    ext4    defaults        1 2
UUID=bcb87417-3008-4fcc-80d7-41c3ef9ff96c swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0

#將/etc/fstab中將以UUID開頭的行存入到/root/fstab中

[root@C67-X64-A1 ~]# sed -n '/^UUID/w /root/fstab' /etc/fstab 
[root@C67-X64-A1 ~]# cat /root/fstab 
UUID=922eb46f-7e6e-4670-8bf1-6f9f1b05a053 /                       ext4    defaults        1 1
UUID=3881dbb7-5500-4eff-ba82-17651d436ce5 /boot                   ext4    defaults        1 2
UUID=419bb1cd-93b2-403b-9bf2-847d3072248b /tmp                    ext4    defaults        1 2
UUID=bcb87417-3008-4fcc-80d7-41c3ef9ff96c swap                    swap    defaults        0 0

# 將/root/write.txt文件讀入到/etc/fstab的第六行

[root@C67-X64-A1 ~]# awk -F ":" '{print $1}' /etc/passwd|head -5>/root/write.txt 
[root@C67-X64-A1 ~]# cat /root/write.txt 
root
bin
daemon
adm
lp
[root@C67-X64-A1 ~]# sed '6r /root/write.txt' /etc/fstab 
#
# /etc/fstab
# Created by anaconda on Tue Jul  5 23:40:37 2016
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
root
bin
daemon
adm
lp
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=922eb46f-7e6e-4670-8bf1-6f9f1b05a053 /                       ext4    defaults        1 1
UUID=3881dbb7-5500-4eff-ba82-17651d436ce5 /boot                   ext4    defaults        1 2
UUID=419bb1cd-93b2-403b-9bf2-847d3072248b /tmp                    ext4    defaults        1 2
UUID=bcb87417-3008-4fcc-80d7-41c3ef9ff96c swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0

#對write.txt文件執行sed.sh腳本指令

[root@C67-X64-A1 ~]# cat sed.sh 
# this is a test sed command
/^$/d
[root@C67-X64-A1 ~]# sed -f sed.sh write.txt 
root
oo
bin
daemon
adm
lp

練習1:刪除/boot/grub/grub.conf文件中所有以空白開頭的行行首的空白字符

[root@C67-X64-A1 ~]# cat /boot/grub/grub.conf 
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/sda5
#          initrd /initrd-[generic-]version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS 6 (2.6.32-573.el6.x86_64)
root (hd0,0)
kernel /tboot.gz logging=vga,serial,memory
module /vmlinuz-2.6.32-573.el6.x86_64 ro root=UUID=922eb46f-7e6e-4670-8bf1-6f9f1b05a053 intel_iommu=on amd_iommu=on rd_NO_LUKS  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_MD crashkernel=128M.UTF-8 rd_NO_LVM rd_NO_DM rhgb quiet
module /initramfs-2.6.32-573.el6.x86_64.img
[root@C67-X64-A1 ~]# sed 's#^[[:space:]]\+##' /boot/grub/grub.conf 
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/sda5
#          initrd /initrd-[generic-]version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS 6 (2.6.32-573.el6.x86_64)
root (hd0,0)
kernel /tboot.gz logging=vga,serial,memory
module /vmlinuz-2.6.32-573.el6.x86_64 ro root=UUID=922eb46f-7e6e-4670-8bf1-6f9f1b05a053 intel_iommu=on amd_iommu=on rd_NO_LUKS  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_MD crashkernel=128M.UTF-8 rd_NO_LVM rd_NO_DM rhgb quiet
module /initramfs-2.6.32-573.el6.x86_64.img

練習2:刪除/etc/fstab文件中所有以#開頭,后面至少跟一個空白字符的行的行首和空白字符

[root@C67-X64-A1 ~]# sed 's@^#[[:space:]]\+@@' /etc/fstab 
#
/etc/fstab
Created by anaconda on Tue Jul  5 23:40:37 2016
#
Accessible filesystems, by reference, are maintained under '/dev/disk'
See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=922eb46f-7e6e-4670-8bf1-6f9f1b05a053 /                       ext4    defaults        1 1
UUID=3881dbb7-5500-4eff-ba82-17651d436ce5 /boot                   ext4    defaults        1 2
UUID=419bb1cd-93b2-403b-9bf2-847d3072248b /tmp                    ext4    defaults        1 2
UUID=bcb87417-3008-4fcc-80d7-41c3ef9ff96c swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0

練習3:echo一個絕對路徑路徑sed命令,取出其基名:取出其目錄名

目錄名稱:
[root@C67-X64-A1 ~]# echo "/etc/sysconfig"|sed 's@[^/]\+/\?$@@'
/etc/
[root@C67-X64-A1 ~]# echo "/etc/sysconfig/"|sed 's@[^/]\+/\?$@@'
/etc/
基名:
[root@C67-X64-A1 ~]# echo "/etc/sysconfig/" | sed -r 's@^/.*/([^/]+)/?@\1@g'
sysconfig
[root@C67-X64-A1 ~]# echo "/etc/sysconfig" | sed -r 's@^/.*/([^/]+)/?@\1@g'
sysconfig

# 執行多個指令的方法

[root@C67-X64-A1 tmp]# cat eth0 
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=dhcp
方法1:
[root@C67-X64-A1 tmp]# sed -e 's/yes/no/' -e 's/eth0/ens32/' eth0 
DEVICE=ens32
TYPE=Ethernet
ONBOOT=no
NM_CONTROLLED=no
BOOTPROTO=dhcp

方法2:利用分號隔開
[root@C67-X64-A1 tmp]# sed 's/yes/no/;s/eth0/ens32/' eth0 
DEVICE=ens32
TYPE=Ethernet
ONBOOT=no
NM_CONTROLLED=no
BOOTPROTO=dhcp

方法3:利用分行
[root@C67-X64-A1 tmp]# sed '
> s/yes/no/
> s/eth0/ens32/' eth0
DEVICE=ens32
TYPE=Ethernet
ONBOOT=no
NM_CONTROLLED=no
BOOTPROTO=dhcp

# 操作地址匹配

sed -n '1~2p' /etc/passwd

# 刪除/tmp/passwd的前5行

[root@C67-X64-A1 tmp]# head -10 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
刪除后,然后進行對比:
[root@C67-X64-A1 tmp]# sed -i '1,5d' /tmp/passwd 
[root@C67-X64-A1 tmp]# cat /tmp/passwd |head -10
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin

# 替換第二個body位/body

[root@C67-X64-A1 ~]# cat test.txt 
<html>
<title>First Web</title>
<body>hello world!<body>
</html>
[root@C67-X64-A1 ~]# cat sed.sh 
/body/{
s//\/body/2
}
[root@C67-X64-A1 ~]# sed -f sed.sh test.txt 
<html>
<title>First Web</title>
<body>hello world!</body>
</html>

# 利用 sed 直接在 /tmp/passwd 最后一行加入『# This is a test』

# sed -i '$a # This is a test' /tmp/passwd
# 先不用-i命令,進行測試下
[root@zabbix ~]# sed '$a # this is a test' /tmp/passwd |tail -5
awx:x:988:985::/var/lib/awx:/bin/bash
li4:x:1011:1011::/home/li4:/bin/bash
admin:x:1012:1012::/home/admin:/sbin/nologin
monitor:x:1013:1013::/home/monitor:/bin/bash
# this is a test
說明:
a)由于$代表的是最后一行,而 a 的動作是新增,因此該文件最后新增『# This is a test』!
b)sed 的『 -i 』選項可以直接修改文件內容,這功能非常有幫助!
c)舉例來說,如果你有一個 100 萬行的文件,你要在第 100 行加某些文字,此時使用 vim 可能會瘋掉!因為文件太大了!那怎辦?
就利用 sed ??!透過 sed 直接修改/取代的功能,你甚至不需要使用 vim 去修訂!

#在/tmp/passwd第二行后面添加"# this is a test"

[root@zabbix ~]# sed '2a # this is a test' /tmp/passwd |head -5
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
# this is a test
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin

# 利用 sed 將passwd內每一行結尾若為 . 則換成 !

[root@zabbix tmp]# cat passwd 
James is a good man .
Kobe is good at IT .
I love Linux.
welcome to linux.
[root@zabbix tmp]# sed 's/\.$/\!/g' passwd 
James is a good man !
Kobe is good at IT !
I love Linux!
welcome to linux!
使用-i參數才會真正的生效

  

原創文章,作者:Net21-冰凍vs西瓜,如若轉載,請注明出處:http://www.www58058.com/25966

(0)
Net21-冰凍vs西瓜Net21-冰凍vs西瓜
上一篇 2016-07-26 16:42
下一篇 2016-07-26 16:43

相關推薦

  • Linux的啟動流程

    Linux的啟動流程大致上如下圖. 現在詳細說明一下每個步驟: 第一階段 當系統啟動時,系統首先會加載BIOS。BIOS的首先會檢查各硬件設備,當檢查完畢沒有問題之后。BIOS會根據設定的BootSequence來尋找可以引導系統的設備。一般而言,Linux是通過磁盤上MBR來引導系統的。 第二階段 MBR是Master Boot Record,是位于磁盤第…

    Linux干貨 2016-02-28
  • Linux磁盤及文件系統管理

    磁盤(Hard Disk Drive,簡稱HDD)是一種存儲介質,傳統的機械硬盤由一個或多個鋁制或玻璃制的碟片組成,碟片外覆蓋有鐵磁性材料。 磁盤的物理結構一般由磁頭與碟片、電動機、主控芯片與排線等部件組成;當主電動機帶動碟片旋轉時,副電動機帶動一組(磁頭)到相對應的碟片上并確定讀取正面還是反面的碟面,磁頭懸浮在碟面上畫出一個與碟片同心的圓形軌道(磁軌或稱柱…

    Linux干貨 2015-04-20
  • day6作業

    1、創建用戶gentoo,附加組為bin和root,默認shell為 /bin/csh,注釋信息為"Gentoo Distribution"     2、創建下面的用戶、組和組成員關系 名字為admins 的組 用戶natasha,使用admins …

    系統運維 2016-08-08
  • 推薦-LINUX磁盤管理

    Evernote Export LINUX磁盤管理 linux學習筆記 磁盤分區 文件系統 掛載 在操作系統中,磁盤管理屬于設備管理的范疇。一塊硬盤安裝到主機之后稱為裸設備,若要能夠在Linux系統中使用必須對其進行如下步驟:分區=>格式化(創建文件系統)=>掛載 LINUX系統的設備類型 Linux沿襲Unix的風格,將所有設備認成是一個文件 …

    Linux干貨 2016-04-05
  • xen虛擬化基礎篇

    Xen介紹:  xen是一個開放的源代碼虛擬機監視器,有劍橋大學研發。它打算在單個計算機上運行多達128個滿足特征的操作系統,操作系統必須進行顯示地修改("移植")以在Xen上運行(但是提供對用戶應用的兼容性)。這使得無需特殊硬件支持,就能達到高性能的虛擬化。 Xen由三部分組成:     第一部分…

    Linux干貨 2015-08-26
  • Linux下使用screen協同作業

    1)screen應用場景(拷貝自網絡): 來自產品工程的高級維護用戶 David 打電話說:“為什么我不能在您部署的這些新機器上編譯 supercode.c”。 您會問他:“您運行的是什么機器?” David 答道:“ Posh”。(這個虛夠的公司將它的 5 臺生產服務器以紀念 Spice Girls 的方式命名)。這下您可以大顯身手了,另一臺機器由 Dav…

    系統運維 2016-08-15
欧美性久久久久