Linux - sed 常用操作
sed 文本常用操作方式
sed 10q # 显示文件中的前10行 (模拟"head")
sed -n '$=' # 计算行数(模拟 "wc -l")
sed -n '5,/^no/p' # 打印从第5行到以no开头行之间的所有行
sed -i "/^$f/d" a # 删除匹配行
sed -i '/aaa/,$d' # 删除匹配行到末尾
sed -i "s/=/:/" c # 直接对文本替换
sed -i "/^pearls/s/$/j/" # 找到pearls开头在行尾加j
sed '/1/,/3/p' file # 打印1和3之间的行
sed -n '1p' 文件 # 取出指定行
sed '5i\aaa' file # 在第5行之前插入行
sed '5a\aaa' file # 在第5行之后抽入行
echo a|sed -e '/a/i\b' # 在匹配行前插入一行
echo a|sed -e '/a/a\b' # 在匹配行后插入一行
echo a|sed 's/a/&\nb/g' # 在匹配行后插入一行
seq 10| sed -e{1,3}'s/./a/' # 匹配1和3行替换
sed -n '/regexp/!p' # 只显示不匹配正则表达式的行
sed '/regexp/d' # 只显示不匹配正则表达式的行
sed '$!N;s/\n//' # 将每两行连接成一行
sed '/baz/s/foo/bar/g' # 只在行中出现字串"baz"的情况下将"foo"替换成"bar"
sed '/baz/!s/foo/bar/g' # 将"foo"替换成"bar",并且只在行中未出现字串"baz"的情况下替换
echo a|sed -e 's/a/#&/g' # 在a前面加#号
sed 's/foo/bar/4' # 只替换每一行中的第四个字串
sed 's/\(.*\)foo/\1bar/' # 替换每行最后一个字符串
sed 's/\(.*\)foo\(.*foo\)/\1bar\2/' # 替换倒数第二个字符串
sed 's/[0-9][0-9]$/&5' # 在以[0-9][0-9]结尾的行后加5
sed -n ' /^eth\|em[01][^:]/{n;p;}' # 匹配多个关键字
sed -n -r ' /eth|em[01][^:]/{n;p;}' # 匹配多个关键字
echo -e "1\n2"|xargs -i -t sed 's/^/1/' {} # 同时处理多个文件
sed '/west/,/east/s/$/*VACA*/' # 修改west和east之间的所有行,在结尾处加*VACA*
sed 's/[^1-9]*\([0-9]\+\).*/\1/' # 取出第一组数字,并且忽略掉开头的0
sed -n '/regexp/{g;1!p;};h' # 查找字符串并将匹配行的上一行显示出来,但并不显示匹配行
sed -n ' /regexp/{n;p;}' # 查找字符串并将匹配行的下一行显示出来,但并不显示匹配行
sed -n 's/\(mar\)got/\1ianne/p' # 保存\(mar\)作为标签1
sed -n 's/\([0-9]\+\).*\(t\)/\2\1/p' # 保存多个标签
sed -i -e '1,3d' -e 's/1/2/' # 多重编辑(先删除1-3行,在将1替换成2)
sed -e 's/@.*//g' -e '/^$/d' # 删除掉@后面所有字符,和空行
sed -n -e "{s/文本(正则)/替换的内容/p}" # 替换并打印出替换行
sed -n -e "{s/^ *[0-9]*//p}" # 打印并删除正则表达式的那部分内容
echo abcd|sed 'y/bd/BE/' # 匹配字符替换
sed '/^#/b;y/y/P/' 2 # 非#号开头的行替换字符
sed '/suan/r 读入文件' # 找到含suan的行,在后面加上读入的文件内容
sed -n '/no/w 写入文件' # 找到含no的行,写入到指定文件中
sed '/regex/G' # 在匹配式样行之后插入一空行
sed '/regex/{x;p;x;G;}' # 在匹配式样行之前和之后各插入一空行
sed 'n;d' # 删除所有偶数行
sed 'G;G' # 在每一行后面增加两空行
sed '/^$/d;G' # 在输出的文本中每一行后面将有且只有一空行
sed 'n;n;n;n;G;' # 在每5行后增加一空白行
sed -n '5~5p' # 只打印行号为5的倍数
seq 1 30|sed '5~5s/.*/a/' # 倍数行执行替换
sed -n '3,${p;n;n;n;n;n;n;}' # 从第3行开始,每7行显示一次
sed -n 'h;n;G;p' # 奇偶调换
seq 1 10|sed '1!G;h;$!d' # 倒叙排列
ls -l|sed -n '/^.rwx.*/p' # 查找属主权限为7的文件
sed = filename | sed 'N;s/\n/\t/' # 为文件中的每一行进行编号(简单的左对齐方式)
sed 's/^[ \t]*//' # 将每一行前导的"空白字符"(空格,制表符)删除,使之左对齐
sed 's/^[ \t]*//;s/[ \t]*$//' # 将每一行中的前导和拖尾的空白字符删除
sed '/{abc,def\}\/\[111,222]/s/^/00000/' # 匹配需要转行的字符: } / [
echo abcd\\nabcde |sed 's/\\n/@/g' |tr '@' '\n' # 将换行符转换为换行
cat tmp|awk '{print $1}'|sort -n|sed -n '$p' # 取一列最大值
sed -n '{s/^[^\/]*//;s/\:.*//;p}' /etc/passwd # 取用户家目录(匹配不为/的字符和匹配:到结尾的字符全部删除)
sed = filename | sed 'N;s/^/ /; s/ *\(.\{6,\}\)\n/\1 /' # 对文件中的所有行编号(行号在左,文字右端对齐)
/sbin/ifconfig |sed 's/.*inet addr:\(.*\) Bca.*/\1/g' |sed -n '/eth/{n;p}' # 取所有IP
删除第一行、最后一行或增加删除某行
、删除文档的第一行
sed -i '1d' <file> 、删除文档的最后一行
sed -i '$d' <file> 、在文档指定行中增加一行
例如文档如下:
echo "";
echo "";
echo "";
echo "";
想要在echo "";后面加上一条echo "";可以用如下命令
sed -i '/echo "2";/aecho "3";' <file>
之所以用分号,是因为文本中本来就有。也就是说分号不是必须的!
抽象出来就是: sed -i '/* /a*' <file> 、删除文件中的一行
sed -i '3d' <file> 、删除文件中包含某个关键字开头的所有行
sed -i '/^QWQ/d' <file> 、删除文件中包含某个关键字的所有行
sed -i '/QWQ/d' <file>
Linux - sed 常用操作的更多相关文章
- 文本处理sed常用操作
文本处理sed常用操作 linux sed (stream editor) is a Unix utility that parses and transforms text, using a sim ...
- linux学习(2):linux服务器常用操作和命令
linux服务器常用操作和命令 目录 1. 什么是linux服务器load average?2. 如何查看linux服务器负载3. 服务器负载高怎么办?4. 如何查看服务器内存使用率?5. 如何查看单 ...
- Linux - sed 文本操作
SED 是一项Linux指令,功能同awk类似,差别在于,sed简单,对列处理的功能要差一些,awk的功能复杂,对列处理的功能比较强大. sed全称是:Stream EDitor 调用sed命令有两种 ...
- Linux下常用操作
************************ 镜像操作 ************************************* screen -s name 新建 screen -r name ...
- Linux 基本命令-----常用操作分类
Linux/Unix 命令格式: 命令名 [选项] [参数] 注:[]中的内容代表内容可以省略 例:$ ls $ ls -l #-l 是选项 开始符号: 文件名 或 文件夹名 .当前文件夹 ..上一级 ...
- linux 文件常用操作
linux 文件基本操作 新建文件:touch test 不会替换重名文件,并且linux一切都是文件,文件夹和文件不能重名 新建文件夹:mkdir test使用 -p 参数,同时创建父目录(如果不存 ...
- Linux下常用操作汇总
查看linux操作系统位数 (1) 终端输入: file /sbin/init 如 显示: /sbin/init: ELF 32-bit LSB executable, Intel 80386, ve ...
- linux vi常用操作
1.基本操作 进入vi vi 或者 vim 进入一个文件或者新建一个文件 例如:vim 11.txt vi有3种模式 一般模式:刚进入时.按esc时. 编辑模式:按下字母[i, I, o, O, a, ...
- linux服务器常用操作和命令
1. 什么是linux服务器load average? Load是用来度量服务器工作量的大小,即计算机cpu任务执行队列的长度,值越大,表明包括正在运行和待运行的进程数越多.参考资料:http://e ...
随机推荐
- idou老师教你学Istio 17 : 通过HTTPS进行双向TLS传输
众所周知,HTTPS是用来解决 HTTP 明文协议的缺陷,在 HTTP 的基础上加入 SSL/TLS 协议,依靠 SSL 证书来验证服务器的身份,为客户端和服务器端之间建立“SSL”通道,确保数据运输 ...
- EOS开发基础之一:源代码下载与开发环境搭建
区块链最近挺火的,我又是个非常缺钱的人,所以紧跟了潮流一头扎进区块链的研究中. 这EOS项目是目前比较火的一个项目,相信很多朋友拿到这份EOS的源代码后都会一脸懵逼,因为……这代码写得太高级了,老纸看 ...
- 微软职位内部推荐-Senior BSP Engineer
微软近期Open的职位: The position of Sr. BSP engineer requires experience and good knowledge in mobile hardw ...
- Linux内核分析 NO.3
跟踪分析Linux内核的启动过程 于佳心 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-100002 ...
- linux内核分析第一周学习笔记
linux内核分析第一周学习笔记 标签(空格分隔): 20135328陈都 陈都 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.co ...
- Alpha版使用说明
1引言 1 .1编写目的 针对我们发布的alpha版本做出安装和使用说明,使参与内测的人员及用户了解软件的使用方法和相关内容. 1 .2参考资料 <javaWeb程序设计基础><di ...
- Beta阶段冲刺-4
一. 每日会议 1. 照片 2. 昨日完成工作 3. 今日完成工作 4. 工作中遇到的困难 杨晨露:热......算不算困难......? 戴志斌:找了好几种框架,改了不少 游舒婷:不能相信开发工具自 ...
- IIS错误提示:另一个程序正在使用此文件 进程无法访问
在IIS管理中,启动一个配置好的网站时,提示:另一个程序正在使用此文件 进程无法访问 原因:网站绑定端口被占用 解决办法:更换绑定端口或者将占用此端口的程序关掉即可
- libev学习之ev_run
好吧,神马都init好了,loop毕竟是个环呐,在哪跑起来呢,ok,他是ev_run的工作: int ev_run (EV_P_ int flags) { #if EV_FEATURE_API ++l ...
- PHP用户输入安全过滤和注入攻击检测
摘抄自ThinkPHP /** * 获取变量 支持过滤和默认值 * @param array $data 数据源 * @param string|false $name 字段名 * @param mi ...