Linux sed是流编辑器能够编辑来自文件和标准输入的文本,非交互式编辑工具sed可以执行逐行更改。用户在调用命令时指定每个编辑选项,sed会自动执行命令。这种文本转换方法非常有效和快速,在脚本和自动化流程中经常使用。下面是为大家分享的Linux sed的常用语法和基本操作希望对大家有所帮助。
Linux sed命令主要语法为:
sed OPTIONS... [SCRIPT] [INPUTFILE...]
sed常见命令行选项如下!
二进制/b:使用二进制模式访问输入文件,把换行符看作行结尾。
调试:用调试模式以正确格式打印输入和评论程序的运行方式。
跟随符号链接:如果提供文件表示符号链接,可以修改最终目标。I是其运行所必须的。
帮助:是指定使用详情。
i/in place [=后缀] :是通过覆盖最初创建文件来进行适当编辑。
posix:是为了更方便移植脚本,需要禁用全部 POSIX sed扩展。
版本:是给出系统上活动sed版本的列表。
E/r/regexp extended:是使用扩展的正则表达式。
e脚本/expression=脚本:是与命令一起运行,需要添加特定脚本。
f脚本文件:是指定一个脚本文件并将其内容添加到命令行。
l N/ line length=N :是与I命令的换行长度关联的默认值是70,需要提供不同长度。
N/quiet/silent:取消输出打印功能。
单独/s:单独查看特定文件而不是将其作为长串连续数据查看。
沙盒:禁用运行外部程序和单独使用命令行处理输入文件。
U/无缓冲:减少输入和输出缓冲区。
z/null 数据/zero 终止 :把输入看成多行集合,每行都用零字节终止。
使用sed命令替换字符串:
sed 's/old_string/new_string/' filename.txt
应该更改 old_string 和 new_string 以反映需要在其位置使用的新文本。
把bin替换为box:
sed 's/box/bin/' foxinbox.txt
默认情况下,sed 会替换每行中目标字符串的第一个实例。它会逐行查找并替换第一个匹配项,然后继续处理下一行。如果一行中有多个匹配项(例如“box”),sed 只会替换第一个。若要替换一行中所有匹配项,需要添加g标志。
如想替换文本中出现特定字符串:
sed 's/old_string/new_string/g' filename.txt
如果想要在文件 foxinbox.txt 中用短语 bin 一致替换术语 box,请采用以下格式:
sed 's/box/bin/g' foxinbox.txt
sed 程序可以选择要在每一行中替换的给定字符串的实例。添加带有数字的标志(如 1、2 等)即可实现此目的:
sed 's/old_string/new_string/#' filename.txt
使用以下语法仅打印在指定情况下具有替换的行:
sed -n 's/old_string/new_string/p' filename.txt