bash脚本命令系列之-sed

sed -i 是一个在 Unix 和 Linux 系统中使用的命令,属于流编辑器 sed 的功能。sed 用于对文本进行处理和转换,而 -i 选项的作用是直接在文件中进行修改,而不是仅仅将结果输出到标准输出。

具体来说:

  • -i 选项表示 "in-place" 编辑,即对指定的文件进行原地编辑。使用了该选项后,sed 将对文件进行修改,而不是生成一个处理后的新文件。

例如,以下命令将文件 example.txt 中的所有 "foo" 替换为 "bar":

 
bash 复制代码 
sed -i 's/foo/bar/g' example.txt

在这个命令中:

  • s 表示替换操作。
  • foo 是要被替换的字符串。
  • bar 是新的字符串。
  • g 表示全局替换,即替换行中所有匹配的部分,而不仅仅是第一个。

注意:使用 -i 选项后,原始文件会被直接修改,操作前最好备份一下文件,以防止数据丢失

 

============================================================

sed -i '25c PASS_MAX_DAYS\t90' 含义
ChatGPT 说:
ChatGPT

sed -i '25c PASS_MAX_DAYS\t90' 是一个 sed 命令,用于在某个文件中替换某一行的内容。

具体解析如下:

  • sed: 这是一个流编辑器,用于处理文本文件。
  • -i: 这个选项表示直接对文件进行修改,而不是输出到标准输出。即,sed 会就地编辑文件。
  • '25c PASS_MAX_DAYS\t90': 这是 sed 命令的一部分。
    • 25c: 表示将第 25 行替换为后面的内容。
    • PASS_MAX_DAYS\t90: 将第 25 行的内容替换为 PASS_MAX_DAYS 90。其中 \t 是一个转义字符,代表制表符(tab)。因此,这条命令实质上是将第 25 行的内容替换为包含制表符的字符串 PASS_MAX_DAYS 90

总结来说,这条命令的作用是在指定的文件中将第 25 行的内容替换为 PASS_MAX_DAYS 后跟一个制表符和数字 90

 

===========================================================

ed -i 's/^\# difok/difok/'
ChatGPT 说:
ChatGPT

sed -i 's/^\# difok/difok/' 是一个使用 sed 命令的示例,用于在文本文件中执行替换操作。以下是对该命令的详解:

  • sed: 这是一个流编辑器,用于处理文本文件。
  • -i: 这个选项表示“就地编辑”,即直接修改输入的文件,而不是输出到标准输出。
  • s/^\# difok/difok/: 这是 sed 中的替换命令,包含了以下部分:
    • s: 表示替换命令。
    • ^: 表示行的开头。
    • \#: 转义符\是为了匹配字符#,因为#在某些情况下可能被视为注释符。
    • difok: 这是要匹配的文本内容,即在行开头有一个#后跟一个空格和difok
    • difok: 这是替换后要使用的文本内容。

总体含义

将文件中所有以 # difok 开头的行替换为 difok。如果某行以 # difok 开头,它将被替换为去掉注释符号的 difok

例子

假设文件内容如下:

 
复制代码 
# difok 5
# maxrepeat 3

执行 sed -i 's/^\# difok/difok/' 后,结果将变为:

 
复制代码 
difok 5
# maxrepeat 3

只有以 # difok 开头的行被修改,其余行保持不变。

posted @   卡卡西殿  阅读(53)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话
点击右上角即可分享
微信分享提示