扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
sed简介:流编辑工具,用来对文本进行过滤与替换操作。
创新互联建站长期为数千家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为瑞金企业提供专业的成都网站设计、网站制作、外贸营销网站建设,瑞金网站改版等技术服务。拥有10余年丰富建站经验和众多成功案例,为您定制开发。
sed流程:sed通过一次仅读取一行内容来对某些指令进行处理后输出。
1、sed通过文件或管道读取文件内容,但sed默认并不直接修改源文件,而是将读入的内容复制到缓冲区中,称之为模式空间。
2、所有的指令操作都是在模式空间找那个进行
3、sed根据相应的指令对模式空间中的内容进行处理并输出结果,默认输出至标准输出(即屏幕上)。
sed基本语法格式:
用法:sed[选项]...{脚本指令}[输入文件]...
选项: -version 显示sed版本
-help :显示帮助文档
-n,-quiet,-silent静默输出,默认情况下,sed程序在所有的脚本指令执行完毕后,将自动打印模式空间中的内容。
-e script允许多个脚本指令被执行
-f script-file从文件中读取脚本指令,对编写自动化脚本程序很实用
-i ,-in-place 该选项直接修改源文件
-l N 该选项指定l指令可以输出的行长度,l指令为输出非打印字符。
-posix 禁用GNU sed扩展功能。
-r 在脚本指令中使用扩展正则表达式。
-s,-separate 默认情况下,sed将把输入的多个文件名作为一个长的连续的输入流。而GNU sed则允许把它们当作单独的文件。
-u,-unbuffered 最低限度的缓存输入与输出
a,append表示追加指令;
i,insert表示插入指令;
d,delete表示删除指令;
s,substitution表示替换指令。
sed脚本指令的基本格式是:
[地址,即路径]命令(有些命令仅可以对一行操作,有些可以对多行操作),命令也可以用花括号进行组合,使命令序列可以作用于同一个地址。
address{
command1
command2
command3
}
sed的基本工作方式是:
sed的替换命令s:
1、全局替换 : s/old/new/g ,其中g为全局替换,用于替换所有出现的次数; /如果和正则匹配的内容冲突可以使用其他符号,如 : s@old@new@g
2、标志位
为什么要有多行模式: 配置文件一般有单行出现,但也有使用json或XML格式的配置文件,为多行出现。
多行模式处理命令N、D、P
linux修改文件的命令:1、“vi”或“vim”命令,可用于修改文件的内容;2、“mv”命令,可用于修改文件的名称;3、“chmod”、“chgrp”、“chown”命令,可用于修改文件的权限;4、“
linux修改文件的命令:1、“vi”或“vim”命令,可用于修改文件的内容;2、“mv”命令,可用于修改文件的名称;3、“chmod”、“chgrp”、“chown”命令,可用于修改文件的权限;4、“touch”命令,可修改文件的时间。
在Unix/Linux系统中,passwd这个指令可以用来变更使用者的密码,对于一般使用者而言(非root),执行passwd之后,会需要输入目前现行的密码,才可以允许密码的变更;而如果是root管理者的话,则可以在不需要现行密码的情况下,变更任何使用者的密码(包含root自己的密码)。
变更使用者密码
一般的使用者执行passwd即可变更自己的密码:
如果是root管理者的话,可以变更任何使用者的密码:
sudo passwd xxx
如果变更root管理者的密码,就跟一般使用者一样直接执行passwd即可。
显示密码状态资讯
若要显示密码的状态资讯,可以加上-S参数:
这个输出包含七个栏位:
帐号名称。
密码状态,状态包含锁定密码(L)、无密码(NP)与可用密码(P)。
上次修改密码的时间。
密码最短使用期限(minimum password age),单位为天。
密码最长使用期限(maximum password age),单位为天。
密码过期前警告期间(password warning period),单位为天。
密码过期后可使用的期间(password inactivity period),单位为天。
如果是root管理者,则可以查看特定使用者的密码资讯:
sudo passwd -S gtwang
root管理者可以使用-aS参数查阅所有使用者的密码状态资讯:
sudo passwd -a
移除使用者的密码
若要移除使用者的密码,可以使用-d参数,并加上使用者的名称:
sudo passwd -d xxxx
移除使用者的密码之后,可以检查一下状态资讯:
sudo passwd -S xxxx
xxxx NP 09/30/2015 0 99999 7 -1
在密码被移除之后,该使用者的帐号也会同时被停用,无法登入。
设定密码为过期状态
有时候因为某些原因(像是重新设定密码之后),我们会希望使用者立刻更改自己的密码,这时候我们可以使用-e参数:
sudo passwd -e xxx
passwd: password expiry information changed.
检查一下状态资讯:
sudo passwd -S xxx
xxx P 01/01/1970 0 99999 7 -1
这时候如果使用者使用SSH 登入的话,系统就会强制变更密码:
1、首先进入到Linux系统,分别创建两个目录vim1、vim2。
2、分别在vim1、vim2文件夹下创建两个测试文件file1.c、file2.c。
3、然后在file1.c中添加,如下内容。
4、在file2.c中添加如下内容,接下来将要批量将这两个文件中的len替换为size。
5、然后执行如下sed -i "s/len/size/g" `grep len -rl ./`。
6、执行上述命令后,分别再次打开上面新建立的两个文件,可以看到len已经被批量替换为了size。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流