22. sed

sed - stream editor for filtering and transforming text
SYNOPSIS
sed [OPTION]... {script-only-if-no-other-script} [input-file]...
DESCRIPTION
Sed is a stream editor. A stream editor is used to perform basic text transformations on an input stream (a file or input from a pipeline).

# sed -n '/net/'p passwd
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
# sed -n '/NET/'p passwd
# sed -n '/NET/'pI passwd
sed:-e 表达式 #1,字符 7:命令后含有多余的字符
# sed -n '/NET/'Ip passwd
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin

-n, --quiet, --silent
suppress automatic printing of pattern space
# sed p passwd | wc
70
# sed p passwd -n | wc
35

# sed '/root/' p passwd -n
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin

# sed '/r.t/'p passwd -n
operator:x:11:0:operator:/root:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin

# sed '/r*t/'p passwd -n | head -3
root:x:0:0:root:/root:/bin/bash
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt

-e script, --expression=script
add the script to the commands to be executed
# sed -e 1p -n -e 2p passwd
o
oo

-i[SUFFIX], --in-place[=SUFFIX]
edit files in place (makes backup if SUFFIX supplied)
# wc passwd
35 passwd
# sed -i '1,10'd passwd
# wc passwd
25 passwd

-r, --regexp-extended(egrep)
use extended regular expressions in the script.
# sed '/o\+t/'p passwd -n
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin

# sed '/o+t/'p passwd -nr
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin

# sed '/o{2}/'p passwd -nr
oo
ooo
oooo

# sed '/root|bus/'p passwd -nr
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin

number
Match only the specified line number
(which increments cumulatively across files, unless the -s option is specified on the command line).
.
# sed 3p passwd -n
ooo

# sed '3,5'p passwd -n
ooo
oooo
oox

$ Match the last line
# sed '33,$'p passwd -n
user5:x:1007:1007::/home/user5:/bin/bash
user6:x:1008:1010::/home/user6:/bin/bash
user7:x:1009:1009::/home/user7:/bin/bash

# wc -l passwd
35 passwd
# sed '1,$'p passwd -n | wc -l
35
# sed -n ''p passwd | wc
35
# sed p passwd -n | wc -l
35

s/regexp/replacement/
Attempt to match regexp against the pattern space.
If successful, replace that portion matched with replacement.
The replacement may contain the special character & to refer to that portion of the
pattern space which matched,
and the special escapes \1 through \9 to refer to the corresponding matching
sub-expressions in the regexp.

# wc -l passwd
35 passwd
# sed s/net/NET/g passwd | wc
35

# sed s/net/NET/g passwd | grep -i net
systemd-NETwork:x:192:192:systemd Network Management:/:/sbin/nologin
# grep -i net passwd
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin

# sed s/net/NET/g passwd -i
# grep -i net passwd
systemd-NETwork:x:192:192:systemd Network Management:/:/sbin/nologin

# sed -r 's/([^:]+):(.*):(.*)/\3:\2:\1/g' passwd | head -5
/bin/bash:x:0:0:root:/root:root
/sbin/nologin:x:1:1:bin:/bin:bin
/sbin/NOLOGIN:x:2:2:daemon:/sbin:daemon
/sbin/nologin:x:3:4:adm:/var/adm:adm
/sbin/nologin:x:4:7:lp:/var/spool/lpd:lp

# sed -r 's/(.*)/aaa:&/g' passwd |head -5
aaa:root:x:0:0:root:/root:/bin/bash
aaa:bin:x:1:1:bin:/bin:/sbin/nologin
aaa:daemon:x:2:2:daemon:/sbin:/sbin/NOLOGIN
aaa:adm:x:3:4:adm:/var/adm:/sbin/nologin
aaa:lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

# sed -r 's/^/aaa:/g' passwd |head -5
aaa:root:x:0:0:root:/root:/bin/bash
aaa:bin:x:1:1:bin:/bin:/sbin/nologin
aaa:daemon:x:2:2:daemon:/sbin:/sbin/NOLOGIN
aaa:adm:x:3:4:adm:/var/adm:/sbin/nologin
aaa:lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

# sed 's/^.*$/123&/' passwd | head -5
123root:x:0:0:root:/root:/bin/bash
123bin:x:1:1:bin:/bin:/sbin/nologin
123daemon:x:2:2:daemon:/sbin:/sbin/NOLOGIN
123adm:x:3:4:adm:/var/adm:/sbin/nologin
123lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

# sed 's/^/123/' passwd | head -5
123root:x:0:0:root:/root:/bin/bash
123bin:x:1:1:bin:/bin:/sbin/nologin
123daemon:x:2:2:daemon:/sbin:/sbin/NOLOGIN
123adm:x:3:4:adm:/var/adm:/sbin/nologin
123lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

好的,以下是Linux中相关命令的例子: 1. grep:查找文本中的特定模式,如查找包含关键字“hello”的行。例:`grep "hello" file.txt` 2. sed:用于文本替换和编辑,如将文本文件中的字符串“foo”替换为“bar”。例:`sed 's/foo/bar/g' file.txt` 3. sort:按照字典顺序对文本文件进行排序。例:`sort file.txt` 4. tr:用于替换或删除文本中的字符,如将文本中的所有小写字母转换为大写字母。例:`tr 'a-z' 'A-Z' < file.txt` 5. uniq:用于删除文本文件中的重复行。例:`uniq file.txt` 6. wc:用于计算文件中的字数、行数和字符数。例:`wc file.txt` 7. dd:用于复制和转换文件。例:`dd if=/dev/zero of=file.txt bs=1M count=10`(将创建一个大小为10MB的文件) 8. ip link:用于管理网络接口。例:`ip link show` 9. ip addr:用于管理IP地址。例:`ip addr show` 10. ss:用于查看网络连接状态。例:`ss -tunlp` 11. netconfig:用于配置网络设置。例:`netconfig` 12. ifconfig:用于配置网络接口。例:`ifconfig eth0 up` 13. netstat:用于查看网络连接状态。例:`netstat -an` 14. ping:用于测试主机之间的连通性。例:`ping google.com` 15. useradd:用于创建新用户。例:`useradd john` 16. date:用于显示和设置系统日期和时间。例:`date` 17. kill:用于终止进程。例:`kill 1234` 18. logname:用于显示当前用户的登录名。例:`logname` 19. ps:用于显示当前正在运行的进程。例:`ps aux` 20. nice:用于调整进程的优先级。例:`nice -10 command` 21. top:用于实时监视系统资源使用情况。例:`top` 22. pstree:用于显示进程树。例:`pstree` 23. sudo:用于以超级用户权限运行命令。例:`sudo command` 24. uname:用于显示系统信息。例:`uname -a` 25. userdel:用于删除用户。例:`userdel john` 26. who:用于显示当前登录用户。例:`who` 27. whoami:用于显示当前用户的用户名。例:`whoami` 28. whois:用于查询域名信息。例:`whois google.com` 29. free:用于显示系统内存使用情况。例:`free`
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值