Linux系统

sed常用操作解析

时间:2017-6-3 18:33:28  作者:solgle  来源:solgle.com  查看:544  评论:0
内容摘要:shell中有两个文件读取的常用命令,一个是awk,一个是sed。这两个你如果没有接触过shell,你就可能不知道,不可能所有大小的文件你都用vi来实现的。下面sed的用法记录了一些案例。---文件字符替换 s-->S 昀--->F下面两个命令类同,只是写法不一[solgle@...
shell中有两个文件读取的常用命令,一个是awk,一个是sed。这两个你如果没有接触过shell,你就可能不知道,不可能所有大小的文件你都用vi来实现的。下面sed的用法记录了一些案例。

---文件字符替换 s-->S  f--->F
下面两个命令类同,只是写法不一
[solgle@solgle tosk]$ sed -e 's/s/S/g' -e 's/f/F/g' 123.sh 
[solgle@solgle tosk]$ sed 's/s/S/g;s/f/F/g' 123.sh 
 
---/g表示所有替换,默认没有表示替换第一个,/2表示第二个替换,以此类推
[solgle@solgle tosk]$ sed  's/s/S/g;s/f/F/2' 123.sh 
 
 
---删除第一行,然后输出到屏幕
[solgle@solgle tosk]$ sed '1d' 123.sh 
---删除1到3行,输出到屏幕,并没有修改原文件
[solgle@solgle tosk]$ sed '1,3d' 123.sh 
dsf
sdf
sd
f
sd
fdsfdsf
[solgle@solgle tosk]$ cat 123.sh 
  ss2sdfd;sfsd
  dss3fsd
  fdsfdsf
dsf
sdf
sd
f
sd
fdsfdsf
[solgle@solgle tosk]$ 
 
---真正修改文件,加-i
[solgle@solgle tosk]$ sed -i '1d' 123.sh 
 
 
---插入文本到文件,打印到屏幕,并不修改原文件
[solgle@solgle tosk]$ sed  '1 i sed insert a row' 123.sh 
sed insert a row
  ss2sdfd;sfsd
  dss3fsd
  fdsfdsf
dsf
sdf
sd
f
sd
fdsfdsf
[solgle@solgle tosk]$ cat 123.sh 
  ss2sdfd;sfsd
  dss3fsd
  fdsfdsf
dsf
sdf
sd
f
sd
fdsfdsf
[solgle@solgle tosk]$ sed  '1 a sed insert a row' 123.sh 
  ss2sdfd;sfsd
sed insert a row
  dss3fsd
  fdsfdsf
dsf
sdf
sd
f
sd
fdsfdsf
[solgle@solgle tosk]$ 
 
---sed读取指定行数的行
[solgle@solgle tosk]$ sed -n '1p' 123.sh 
  ss2sdfd;sfsd
[solgle@solgle tosk]$ sed -n '1,3p' 123.sh 
  ss2sdfd;sfsd
  dss3fsd
  fdsfdsf
 
 
---------其他字符操作---------------------------------------
grep字符查找
 
[solgle@solgle tosk]$ grep -n 's' 123.sh 
1:  ss2sdfd;sfsd
2:  dss3fsd
3:  fdsfdsf
4:dsf
5:sdf
6:sd
8:sd
9:fdsfdsf
[solgle@solgle tosk]$ grep -c 's' 123.sh 
8
[solgle@solgle tosk]$ grep -ci 's' 123.sh 
8
[solgle@solgle tosk]$ grep -v 's' 123.sh 
f
 
----sort排序
[solgle@solgle tosk]$ sort 123.sh 
dsf
  dss3fsd
f
fdsfdsf
  fdsfdsf
sd
sd
sdf
  ss2sdfd;sfsd
 
 
----tr文本转换
[solgle@solgle tosk]$ cat 123.sh |tr '[a-z]' '[A-Z]'
  SS2SDFD;SFSD
  DSS3FSD
  FDSFDSF
DSF
SDF
SD
F
SD
FDSFDSF
 
 
---文件合并
[solgle@solgle tosk]$ paste -d: 123.sh 123.sh 
  ss2sdfd;sfsd:  ss2sdfd;sfsd
  dss3fsd:  dss3fsd
  fdsfdsf:  fdsfdsf
dsf:dsf
sdf:sdf
sd:sd
f:f
sd:sd
fdsfdsf:fdsfdsf
[solgle@solgle tosk]$ 
 
 
cut字符串截取
[solgle@solgle tosk]$ cat /etc/passwd|cut  -f1,2-4  -d:
root:x:0:0
bin:x:1:1
daemon:x:2:2
adm:x:3:4
lp:x:4:7
sync:x:5:0
shutdown:x:6:0
halt:x:7:0
mail:x:8:12
news:x:9:13
uucp:x:10:14
 
 
---剔除文件中的重复行
[solgle@solgle tosk]$ sort 123.sh |uniq > 456.sh
[solgle@solgle tosk]$ cat 456.sh 
dsf
  dss3fsd
f
fdsfdsf
  fdsfdsf
sd
sdf
  ss2sdfd;sfsd
[solgle@solgle tosk]$ 
 
 
标签:sed常用操作解析 

solgle.com 版权所有,欢迎分享!!!

相关文章
    相关评论
       Copyright © 2013-2020 solgle.com,All rights reserved.[solgle.com] 公安机关备案号:51010802000219
    Email:solgle@solgle.com; weixin:cd1008610000 ICP:蜀ICP备14011070号-1