sed命令文档

命令目录

Linux sed 命令是利用脚本来处理文本文件。sed 可依照脚本的指令来处理、编辑文本文件。Sed 主要用来自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等。

参数说明:

  • -h或--help 显示帮助。
  • -r -E 使用正则表达式
  • -n或--quiet或--silent 仅显示script处理后的结果。
  • -e <script>或--expression=<script> 以选项中指定的script来处理输入的文本文件。
  • -f<script文件>或--file=<script文件> 以选项中指定的script文件来处理输入的文本文件。
  • -V或--version 显示版本信息。

动作说明:

  • a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
  • c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
  • d :删除,因为是删除啊,所以 d 后面通常不接任何东东;
  • i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
  • p :打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~
  • s :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正则表达式!例如 1,20s/old/new/g 就是啦!
  • g : 全局替换, 有g的情况下,如果一行内,有多个文本匹配,所有文本都会替换,否则只替换每一行的第一个匹配项

使用案例

# 替换文件内容 并且备份原文件  -i 原地替换文本内容  [SUFFIX] 替换时,使用此后缀,使用些后缀备份原文件
# -i[SUFFIX], --in-place[=SUFFIX]  edit files in place (makes backup if SUFFIX supplied)

## 普通文本替换  -i 原地替换 .back 备份文件后缀  s 表示替换   g  全局替换
sed -i.back s/pwpolicy/PWPOLICY/g  anaconda-ks.cfg

## 查找并输出匹配的文本到控制台   -n 仅显示script处理后的结果  p 打印输出
sed -n /PWPOLICY/p anaconda-ks.cfg

## 只保留匹配的行 
sed -n -i.back /PWPOLICY/p anaconda-ks.cfg

## 使用正则表达式 -E 或者 -r  使用正则  ^#.+ 匹配注释的行  替换为 #@@@ 
sed -E s/^#.+/#@@@/ anaconda-ks.cfg

## 插入  在每个注释的行后面(前一行,后一行)添加一个说明 
sed -r 's/(^#.+)/\1  ---这一行是被注释的/' anaconda-ks.cfg
sed -E '/^#.+/a##上面一行是被注释的' anaconda-ks.cfg
sed -E '/^#.+/i##下面一行是被注释的' anaconda-ks.cfg

## 在指定位置插入一行  
sed  '1i##这是在第一行前面插入的一行文本' anaconda-ks.cfg

## 在每一行的开头或末尾添加文本
sed 's/^/##每一行开头添加的文本  /' anaconda-ks.cfg
sed 's/$/  ##每一行末尾添加的文本/' anaconda-ks.cfg

sed  'i##在每一行前面都插入一行文本' anaconda-ks.cfg
# 使用正则
sed -r  '/^/i##在每一行前面都插入一行文本' anaconda-ks.cfg

# 在每一行的前后同时添加一行文本 并且在当前行最后添加注释 
sed -r  's/^(.+)/##在每一行前面都插入一行文本 \n\1 ## 在当前行后添加的注释  \n在每一行后面都插入一行文本/' anaconda-ks.cfg


案例文本

#version=DEVEL
# System authorization information
auth --enableshadow --passalgo=sha512
# Use CDROM installation media
cdrom
# Use graphical install
graphical
# Run the Setup Agent on first boot
firstboot --enable
ignoredisk --only-use=sda
# Keyboard layouts
keyboard --vckeymap=cn --xlayouts='cn'
# System language
lang zh_CN.UTF-8

# Network information
network  --bootproto=dhcp --device=ens33 --ipv6=auto --activate
network  --hostname=localhost.localdomain

# Root password
rootpw --iscrypted $6$em3bHuprstKmXq0v$Oluvx6JudKtHETwBZ2t8fhf1O.RJ2tL5tiad8aaA9GpRd5PlR1edHxih6a0TPjsB2RMpLvAyqAerudZ0kOvQV1
# System services
services --disabled="chronyd"
# System timezone
timezone Asia/Shanghai --isUtc --nontp
# System bootloader configuration
bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda
autopart --type=lvm
# Partition clearing information
clearpart --none --initlabel

%packages
@^minimal
@core
kexec-tools

%end

%addon com_redhat_kdump --enable --reserve-mb='auto'

%end

%anaconda
pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty
pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok
pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty
%end
posted @ 2024-11-05 09:03  菜阿  阅读(12)  评论(0编辑  收藏  举报