小知识:实战基本的Linux sed命令示例代码

linux流编辑器是在数据中心中运行脚本的一种有用方法。通过这些命令示例,您可以开始熟悉sed

想要修改文件而不覆盖原始文件的linux管理员有很多选择,但最有效的工具之一是流编辑器 – sed。

流编辑器是大多数linux发行版的默认部分。它使您能够使用linux sed命令在操作系统中执行文本文件操作。

与大多数linux应用程序一样,sed可以处理管道输入,这使它成为一种有效的脚本工具。您可以将其用作基本的查找和替换工具,如下面的示例命令所示,该命令查找出现的一个实例,并将其替换为两个实例。命令以 /g结束。

?
1
sed s/one/two/g linuxidc linuxmi

%小知识:实战基本的Linux sed命令示例代码-猿站网-插图

例如,这个linux sed命令可以帮助您定位和创建配置文件的新版本。当这些函数作为脚本的一部分运行时,它们是可重复的和一致的,并且您可以快速实现更改。

但是sed的主要目的是更改文本文件的内容。它使用了一些重要的命令行开关。/s表示搜索,该命令以/g分隔。-i开关在适当的位置上运行命令——它直接修改文件。

?
1
sed -i s/port 22/port 10000/g /etc/ssh/sshd_config

%小知识:实战基本的Linux sed命令示例代码-1猿站网-插图

在此示例中,/etc/ssh/sshd_config文件中secure shell服务器中使用的端口号从默认端口22更改为端口10000。

使用linux sed命令进行文件更改

可以使用sed编辑文件,但有点不满意。 ad hoc编辑可能会导致问题,因为sed无法访问完整的源代码,也无法识别错误或拼写错误。 此外,这样做会使原始文件处于危险之中,因为一旦您更改了原始代码,就无法恢复原始代码。

您可以使用-e开关一次指定多个更改。 同样,sshd_config.conf文件使得更改多行变得简单。 下面的脚本可能看起来很复杂,但操作系统只是传递多个sed更改数据包,每个数据包前缀为-e。

使用sshd_config文件,您可以更改端口号,禁用密码身份验证并一步启用公钥身份验证。

?
1
2
3
4
sed -i -e s/port 22/port 10000/g -e
s/permitrootlogin yes/permitrootlogin no/g -e
s/passwordauthentication yes/passwordauthentication no/g -e
s/#passwordauthentication no/#passwordauthentication no/g /etc/ssh/sshd_config

%小知识:实战基本的Linux sed命令示例代码-2猿站网-插图

搜索和替换功能在新的一行; 用\分解命令不起作用,因为sed将其视为特殊字符。

结合sed中的提示

您还可以将多个linux sed命令链接在一起以更改应用程序的位置。 手动修改文件路径有很大的错误空间,但自动化它可以使生活更轻松。

用作分隔符的反斜杠可能不适用于某些脚本,但sed允许您更改分隔符。 例如,假设您有一个名为example.conf的日志文件,其中包含以下内容:

?
1
logpath = /var/log/mylogfile.log

将此路径更改为/my/alternate/path/newlog.log,您可以使用|作为分隔符,因为/在文件系统路径中不起作用。

?
1
sed -i s|/var/log/mylogfile.log|/my/alternate/path/newlog.log|g example.conf

使用linux sed命令的其他方法包括使用^#mycomment为搜索模式添加前缀; 这会搜索以#mycomment开头的行。 您可以在输出端使用它,以便创建一个新行来替换现有的一行。 您还可以使用$字符在行尾查找内容。

要查看更高级的示例,请使用man sed命令。 它提供了更详细的命令和语法分解。

%小知识:实战基本的Linux sed命令示例代码-3猿站网-插图

总结

以上所述是小编给大家介绍的实战基本的linux sed命令示例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!

原文链接:https://www.linuxidc.com/Linux/2018-10/154878.htm

声明: 猿站网有关资源均来自网络搜集与网友提供,任何涉及商业盈利目的的均不得使用,否则产生的一切后果将由您自己承担! 本平台资源仅供个人学习交流、测试使用 所有内容请在下载后24小时内删除,制止非法恶意传播,不对任何下载或转载者造成的危害负任何法律责任!也请大家支持、购置正版! 。本站一律禁止以任何方式发布或转载任何违法的相关信息访客发现请向站长举报,会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。本网站的资源部分来源于网络,如有侵权烦请发送邮件至:2697268773@qq.com进行处理。
建站知识

小知识:在Linux系统下上传项目到码云的方法

2023-3-21 7:03:06

建站知识

小知识:Linux强制释放占用端口以及Linux防火墙端口开放方法详解

2023-3-21 7:28:31

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索