sed选项详解(options)

本文详细介绍了sed命令的各种选项及其用途,包括-n(仅输出结果)、-i(修改原文件)、-c(保持文件归属不变)、-f(使用命令文件)、-e(执行sed命令)等,并提供了具体的使用示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

几天时间把 sed and awk 101hacks 的sed部分看完了,觉得功能甚是强大,在这里记录下sed的一些参数说明

 

sed [options] {sed-commands} {input-file}

 

主要Options 有:n , i , c, f, e, l, h, V

 

详解:

-n:  不输出原文件,只输出命令执行后的结果(The sed option -n suppresses the default printing that happens as part of the standard sed flow. )

sed -n 'p' /etc/passwd

你也可以使用 --quiet, or –-silent 来代替 -n. 他们提供相同的功能。 

 

-i:  修改后文件替换原文件( Sed option -i typically uses a temporary file to create the changes and renames it to the original input-file when the operation is completed. )

sed -i 's/John/Johnny/' employee.txt  

 该参数会把变更写入到原文件(employee.txt)

  等同于: 

sed 's/John/Johnny/' employee.txt > new-employee.txt
mv
new-employee.txt employee.txt

为安全起见,一般使用:

sed -ibak 's/John/Johnny/' employee.txt

代替。该命令会在修改前生成一个备份文件(文件名为原名末尾追加bak),-ibak等同于--in-place=bak,--in-place=bak 更灵活,可以变更追加的表示符(bak)

 

-c: 保持文件归属不变

由于-i 命令是重新生成了文件并把新文件重命名为原文件,这会导致文件的ownership 改变,-c 命令的存在就是为了防止这个发生的。所以这个命令需要和-i 一同使用。

sed -ibak -c 's/John/Johnny/' employee.txt

 

-f:  使用命令文件

sed -n -f test-script.sed /etc/passwd
sed -n --file=test-script.sed /etc/passwd

命令写到test-script.sed文件中,直接调用sed -f filename 就ok

也可以把#!/bin/sed -f  添加到sed命令文件首行,直接调

./test-script.sed /etc/passwd

就可以执行

 

-e: 执行一个sed命令

sed -n -e '/root/ p' /etc/passwd
sed -n --expression '/root/ p' /etc/passwd
sed -n -e  '/^101/p' -n -e '/Manag/p' employee.txt

 多个-e之间是或者的关系,满足条件的都会输出

 

-l:指定行长度

sed -n -l 20 'l' employee.txt
sed -n --line-length=20 employee.txt

超过设定的长度后换行,必须和'l'命令一块使用

 

-h或--help:显示帮助;

 

-V或--version:显示版本信息。 

 

发现错误或不足指出烦请指出,谢谢,欢迎转载,请注明出处Jaxlinda。

转载于:https://www.cnblogs.com/Jaxlinda/p/7095445.html

sedawk是用户、程序员和管理员应用的工具。之所以称为sed是因为它是一个流编辑器(stream editor),用于对许多文件执行一系列的编辑操作。awk是根据它的开发者Aho、Weinberger和Kernighan命名的。awk是一种编程语言,它可以使你很容易地处理结构化数据和生成格式化报告。第二版介绍了awk的POSIX标准,同时介绍了一些可免费使用的以及商业版的awk。 本书在一开始就给出了一个概述和指南,论述了从grep到sed再到awk不断改进的功能。sedawk具有相同的命令行语法,以脚本的形式接收用户的命令。因为所有这三个程序都使用UNIX正则表达式,因此书中用一章的篇幅来介绍UNIX的正则表达式语法。 然后,本书介绍如何编写sed脚本。从编写几行简单的脚本开始,学习进行手工编辑操作的其他基本命令和高级命令,以及由此引入的简单程序结构。这些高级命令包括用于处理保持空间、即一个临时缓冲区的命令。 本书的第二部分经过广泛的修订,包括了POSIX awk,以及3个可免费使用的和3个商业版的awk。本书介绍了awk语言的主要特点以及如何编写简单的脚本。你还能了解到: * 通用的程序结构 * 如何使用awk的内部函数 * 如何编写用户的定义函数 * awk程序的调试技术 * 如何开发一个处理索引的应用程序,该程序演示了awk的强大功能 * 得到不同awk版本的FTP和联系信息 本书还包含了一组用户提供的程序,这些程序展示了广泛的sedawk程序风格和技巧。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值