总结linux中sed命令的使用方法
linux之sed命令:
1 初识sed
sed编辑器被称作流编辑器,它和vim这种的交互式文本编辑器不同,是根据命令来处理数据流中的数据。会执行下列操作:
一次从输入中读取一行数据(重复该操作直到全部行被读取完)
根据编辑器命令匹配数据
按照命令修改数据流中的数据
将新数据输出到STDOUT(标准输出)
其中sed命令的可以从命令行中输入,也可以从一个命令文件中读取。
sed -e script 添加script中指定的命令 sed -f file 添加file中指定的命令
1.1 在命令行定义sed命令【推荐学习:linux视频教程】
来看一个简单的文本替换示例:
echo "hi,my name is xxx" | sed 's/xxx/kinsomy/' #修改文件 sed 's/xxx/kinsomy/' data.txt #执行多个命令 用-e选项,分号隔开 sed 's/xxx/kinsomy/; s/***/hhh/' data.txt
将echo输出的数据通过管道输入sed中,然后用s命令进行替换,用第二个斜杠后的数据替换掉第一个斜杠后匹配的数据。
注意:sed操作文本文件中的数据,仅仅是将修改的数据输出到STDOUT,但是并不会修改文件本身的数据
1.2 从文件读取命令
在一个文件script.sed中定义一系列的命令,方便复用。
s/*/a s/x/b s/-/+
# -f选项指定命令文件 sed -f script.sed data.txt
2 sed基础
2.1替换标记
上面的例子echo "hi,my name is xxx" | sed 's/xxx/kinsomy/'只会替换每一行中匹配到的第一个数据,但是一行数据中若有多个匹配项,则不能全部被替换掉。
echo "hi,my name is xxx, i am xxx" | sed 's/xxx/kinsomy/' #输出 hi,my name is kinsomy, i am xxx
这个时候可以使用一些替换标记substitution flag来设置替换的模式。替换标记跟在替换字符串之后。
s/pattern/replacement/flags
数字,表示将替换掉第几处被匹配到的数据
echo "hi,my name is xxx, i am xxx" | sed 's/xxx/kinsomy/2' #输出 第二个xxx被替换成kinsomy hi,my name is xxx, i am kinsomy
g,表示替换所有匹配到的数据
echo "hi,my name is xxx, i am xxx" | sed 's/xxx/kinsomy/g' #输出 第二个xxx被替换成kinsomy hi,my name is kinsomy, i am kinsomy
p,表示会打印出被匹配出来的行
echo "hi,my name is xxx, i am xxx" | sed 's/xxx/kinsomy/p' #输出 hi,my name is kinsomy, i am xxx hi,my name is kinsomy, i am xxx
w,将替换后输出保存到指定文件 echo "hi,my name is xxx, i am xxx" | sed 's/xxx/kinsomy/w output.txt'
2.3 行寻址
上文说到sed命令是一行行读取文本,进行匹配操作数据,知道所有行被遍历完,如果这时候我们想要对特定的行做操作就要使用行寻址。 行寻址有两种形式:
数字形式表示行
# 操作单行 $ sed '2s/xxx/***/' data.txt # 操作一定行区间[2,4] $ sed '2,4s/xxx/***/' data.txt # 操作某行开始到最后[2,endline] $ sed '2,$s/xxx/***/' data.txt
文本模式过滤器
首先在/etc/passwd内找到kinsomy的记录,然后将bash替换为csh。文本模式过滤器配合正则表达式会很强大。
sed '/kinsomy/s/bash/csh/' /etc/passwd
2.4 删除行
使用删除命令d对文本进行删除操作。
# 删除所有文本 sed 'd' data.txt # 删除单行 sed '2d' data.txt # 删除行区间[2,3] sed '2,3d' data.txt # 删除行区间[2,endline] sed '2,$d' data.txt # 删除匹配文本aa的行 sed '/aa/d' data.txt # 删除两个匹配文本之间的文本 匹配到1和3的行之间的文本全部被删除 sed '/1/,/3/d' data.txt
2.5 插入、附加文本
插入命令i在指定行前增加新行
附加命令a在指定行后增加新行
# 追加 echo "Line 2" | sed 'a\ pipe quote> Line 1' #插入 echo "Line 2" | sed 'i\ pipe quote> Line 1'
2.6 修改行
c命令用来修改一行数据
# 修改第三行文本 sed '3c\ pipe quote> change line ' data.txt
2.7 转换命令
命令格式 sed 'y/inchar/outchar'
将inchar中的字符一一对应地转换成outchar的字符
echo "This 1 is a test of 1 try." | sed 'y/123/456/' # 输出 This 4 is a test of 4 try.
以上是总结linux中sed命令的使用方法的详细内容。更多信息请关注PHP中文网其他相关文章!

使用Linux维护模式的时机和原因:1)系统启动问题时,2)进行重大系统更新或升级时,3)执行文件系统维护时。维护模式提供安全、控制的环境,确保操作的安全性和效率,减少对用户的影响,并增强系统的安全性。

Linux中不可或缺的命令包括:1.ls:列出目录内容;2.cd:改变工作目录;3.mkdir:创建新目录;4.rm:删除文件或目录;5.cp:复制文件或目录;6.mv:移动或重命名文件或目录。这些命令通过与内核交互执行操作,帮助用户高效管理文件和系统。

在Linux中,文件和目录管理使用ls、cd、mkdir、rm、cp、mv命令,权限管理使用chmod、chown、chgrp命令。1.文件和目录管理命令如ls-l列出详细信息,mkdir-p递归创建目录。2.权限管理命令如chmod755file设置文件权限,chownuserfile改变文件所有者,chgrpgroupfile改变文件所属组。这些命令基于文件系统结构和用户、组系统,通过系统调用和元数据实现操作和控制。

MaintenancemodeInuxisAspecialBootenvironmentforforcalsystemmaintenancetasks.itallowsadMinistratorStoperFormTaskSlikerSettingPassingPassingPasswords,RepairingFilesystems,andRecoveringFrombootFailuresFailuresFailuresInamInimAlenimalenimalenrenmentrent.ToEnterMainterMainterMaintErmaintErmaintEncemememodeBoode,Interlecttheboo

Linux的核心组件包括内核、文件系统、Shell、用户空间与内核空间、设备驱动程序以及性能优化和最佳实践。1)内核是系统的核心,管理硬件、内存和进程。2)文件系统组织数据,支持多种类型如ext4、Btrfs和XFS。3)Shell是用户与系统交互的命令中心,支持脚本编写。4)用户空间与内核空间分离,确保系统稳定性。5)设备驱动程序连接硬件与操作系统。6)性能优化包括调整系统配置和遵循最佳实践。

Linux系统的五个基本组件是:1.内核,2.系统库,3.系统实用程序,4.图形用户界面,5.应用程序。内核管理硬件资源,系统库提供预编译函数,系统实用程序用于系统管理,GUI提供可视化交互,应用程序利用这些组件实现功能。

Linux的维护模式可以通过GRUB菜单进入,具体步骤为:1)在GRUB菜单中选择内核并按'e'编辑,2)在'linux'行末添加'single'或'1',3)按Ctrl X启动。维护模式提供了一个安全环境,适用于系统修复、重置密码和系统升级等任务。

进入Linux恢复模式的步骤是:1.重启系统并按特定键进入GRUB菜单;2.选择带有(recoverymode)的选项;3.在恢复模式菜单中选择操作,如fsck或root。恢复模式允许你以单用户模式启动系统,进行文件系统检查和修复、编辑配置文件等操作,帮助解决系统问题。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

Atom编辑器mac版下载
最流行的的开源编辑器