sed练习

发布时间 2023-04-09 13:11:05作者: 法螺話
练习1:
    新建一个cs.txt,内容如下:
    hehaotian   luqianjun zhangyi lianyu
    hehaotian   luqianjun lipengfei zhangyi wuhao
    hehaotian   lipengfei luqianjun zhangyi lianyu
    sanchuang 34567 feng
    changsha@12345 sanchuang

1.删除zhangyi
[root@blueendingnova lianxi]# sed -i 's/zhangyi/ /g' cs.txt
2.删除每行里的数字,或者特殊符号
[root@blueendingnova lianxi]# sed -i 's/[^a-z ]//g' cs.txt
3.将3行注释,前面加一个#号
[root@blueendingnova lianxi]# sed -i '3 s/^/#/' cs.txt
4.包含lipengfei的行前面加注释
[root@blueendingnova lianxi]# sed '/lipengfei/ s/^/#/' cs.txt
5.在luqianjun字符串后面加一个sanchuang
# sed -i.backup  's/luqianjun/&sanchuang/g' cs.txt
6.以wuhao结尾的行,在末尾加一个zhengyani
# sed -i.backup  '/wuhao$/ s/$/zhengyani/' cs.txt

练习2:
1./etc/hostname 文件里的名字修改为dengjianguo
[root@blueendingnova lianxi]# sed -i 'c dengjianguo' hostname
2.复制/etc/hosts文件到当前目录下,然后进行操作
  在每行前面加一个字符串sanchuang
[root@blueendingnova lianxi]# sed -i 's/^/sanchuang/' hosts
3.自己编辑一个文件test.txt,内容如下:
0.0.0.0
1.1.1.1
2.2.2.2
使用sed或者awk或者编写脚本(shell,python,go等)实现输出以下形式:
0.0.0.0:80,1.1.1.1:80,2.2.2.2:80
#!/bin/bash
result=""
while read line; do
    result+="$line:80,"
done < test.txt
echo ${result%?}
4.新建一个文本文件sc.txt,内容如下:
abcdSdddde
islHishbxld
goBkefji
daanshXxge
使用sed去处理sc.txt给含有大写字母的行,在大写字母后追加数字2023
[root@blueendingnova lianxi]# sed 's/[A-Z]/&2023/g' sc.txt
5.复制/etc/passwd文件到当前目录下,对当前目录下的passwd文件进行操作  --》请不要直接对/etc/passwd操作
    请将所有的非root用户的uid后面加一个0,gid前面加一个1
[root@blueendingnova lianxi]# sed -r '/^[^root]/ s/:/0:1/3' passwd
练习:3:
    1.复制/etc/ssh/sshd_config到当前目录下,修改里面的端口号修改为8899
        将#Port 22 配置修改为Port 8899 要求去掉前面的#号,将22修改为8899
注意:所有的文件建议复制到当前目录下操作,不然重新启动系统会导致系统启动不起来。
[root@blueendingnova lianxi]# sed 's/\#Port 22/Port 8899/' sshd_config