博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
sed tr
阅读量:6341 次
发布时间:2019-06-22

本文共 2459 字,大约阅读时间需要 8 分钟。

sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换、删除、新增、选取等

sed命令行格式为:
         sed [-nefri] 'command' filename        
常用选项:
-n
:使用安静(silent)模式。只有经过sed 特殊处理的那一行(或者动作)才会被列出来
-e
:用于进行多重编辑
-f
:直接将 sed 的动作写在一个文件内,-f filename 则可以执行 filename 内的sed 动作
-r
:sed 的动作支援的是延伸型正规表示法的语法
-i
:直接修改读取的文件内容,而不是由屏幕输出       
常用命令:
a
:添加,后面可以接字符串,而这些字串会在新的一行出现(当前的下一行)
c
:取代(整行),后面可以接字符串,这些字串可以取代 n1,n2 之间的行
d
:删除
i
:插入,i 的后面可以接字串,而这些字串会在新的一行出现(当前的上一行)
p
:打印
s
:替换(以字符串为单位)
's/要替换的字符串/新的字符串/g'
(末端的g表示在行内进行全局替换)
y
:替换(以字符为单位,按照一对一的方式从左到右进行转换,类似于tr)
 
删除某行:
 
 
  1. [root@rhel5 data]# sed '1d' keyword              #删除第一行  
  2. [root@rhel5 data]# sed '$d' keyword              #删除最后一行 
  3. [root@rhel5 data]# sed '1,3d' keyword               #删除第一行到第三行 
  4. [root@rhel5 data]# sed '/opq/,/dca/d' keyword       #删除包含opq到包含dca之间的行 
  5. [root@rhel5 data]# sed '5,$d' keyword               #删除最后一行 
  6. [root@rhel5 data]# sed -e '1,3d' -e '6,8d' keyword  #删除第1到3行和第6到8行之间的内容 
显示某行:
 
 
  1. [root@rhel5 data]# sed -n '1p' keyword           #显示第一行  
  2. [root@rhel5 data]# sed -n '$p' keyword           #显示最后一行 
  3. [root@rhel5 data]# sed -n '2,5p' keyword            #显示第二到第五行 
  4. [root@rhel5 data]# sed -n '7,$p' keyword            #显示第七到最后一行 
  5. [root@rhel5 data]# sed -n '/abc/p' keyword          #查询包含abc的所有行 
  6. [root@rhel5 data]# sed -n '/\$/p' keyword           #查询包括关键字$所在所有行,使用反斜线\屏蔽特殊含义 
修改某行(字符串):
 
 
  1. [root@rhel5 data]# sed '1a drink tea' keyword            #第一行后增加字符串"drink tea" 
  2. [root@rhel5 data]# sed '1,3a drink tea' keyword      #第一行到第三行后都增加字符串"drink tea"  
  3. [root@rhel5 data]# sed '1a drink tea\nor coffee' keyword    #第一行后增加多行,使用换行符\n 
  4. [root@rhel5 data]# sed '1c Hi' keyword                #第一行代替为Hi 
  5. [root@rhel5 data]# sed '1,2c Hi' keyword                 #第一行到第二行代替为Hi(一二行合并为一行) 
  6. [root@rhel5 data]# sed -n 's/abc/efg/p' keyword          #替换abc为efg 
  7. [root@rhel5 data]# sed -n 's/abc//p' keyword             #删除abc关键字 
  8. [root@rhel5 data]# sed -i '$a bye' keyword               #在文件keyword中最后一行直接输入"bye" 
  9. [root@rhel5 data]# sed '/abc/r text' keyword             #将txet文件中内的文本内容添加到包含abc的所有行后面 
  10. [root@rhel5 data]# sed '1,5y/abc12/ABC89/' keyword       #将1到5行中所有的a替换为A,b替换为B,c替换为C,1替换为8,2替换为9 
=============================================================================
tr
通过使用tr,可以地实现 sed 的许多最基本的功能。可将 tr 看作为 sed的简化(以字符为单位)
用法:tr [-cdst] 集合1 [集合2] ...
-c
用集合1中的字符串替换,要求字符集为ASCII
-d
删除集合1中所有输入字符
-s
删除所有重复出现字符序列,只保留第一个
-t
先删除第一字符集较第二字符集多出的字符
 
 
  1. [root@rhel5 data]# ls| tr ' ' '\n'                  #将空格替换为换行 
  2. [root@rhel5 data]# tr abc12 ABC89 <keyword       #将a替换为A,b替换为B,c替换为C,1替换为8,2替换为9 
  3. [root@rhel5 data]# tr [a-z] [A-Z] <keyword          #将小写替换为大写 
  4. [root@rhel5 data]# tr [0-9] [a-j] <keyword          #将数字0-9替换为a-j 
  5. [root@rhel5 data]# tr -d linux123 <keyword          #删除文件中的 l i n u x 1 2 3 (字符,而非字符串) 
  6. [root@rhel5 data]# tr -s [0-9] <keyword             #删除文本中重复出现的数字 

转载地址:http://uzkla.baihongyu.com/

你可能感兴趣的文章
防火墙(一)主机型防火墙
查看>>
基于哈夫曼编码的压缩算法的实现
查看>>
TCP长连接与短连接的区别
查看>>
sed tr
查看>>
FTP文件传输服务器(详解)
查看>>
ERROR OGG-01172 Discard file (/oradata/gglog/repl.dsc) exceeded max bytes (500000000).
查看>>
Activiti 实战篇 小试牛刀
查看>>
java中的Static class
查看>>
Xshell 连接CentOS服务器解密
查看>>
[工具类]视频音频格式转换
查看>>
GNS3与抓包工具Wireshark的关联
查看>>
设计模式之策略设计模式
查看>>
groovy-语句
查看>>
VIM寄存器使用
查看>>
Java VisualVM远程监控JVM
查看>>
nasm预处理器(2)
查看>>
二叉排序树 算法实验
查看>>
Silverlight 5 beta新特性探索系列:10.浏览器模式下内嵌HTML+浏览器模式下创建txt文本文件...
查看>>
YourSQLDba 配置——修改备份路径
查看>>
nginx web服务理论与实战
查看>>