Chinaunix首页 | 论坛 | 博客
  • 博客访问: 633279
  • 博文数量: 140
  • 博客积分: 2635
  • 博客等级: 少校
  • 技术积分: 1353
  • 用 户 组: 普通用户
  • 注册时间: 2010-06-04 15:46
文章分类
文章存档

2015年(2)

2014年(12)

2013年(10)

2012年(10)

2011年(85)

2010年(21)

分类: Python/Ruby

2011-05-24 17:26:06



1、删除指定的某一行:

sed '/abc/d' filename
替换
sed 's/abc/要替换内容/g' filename
sed 's/abc.*/替换内容/g'

2、输出并替换原有的文件:

sed '/five/d' abc.txt >abc.txt.bak && mv -f abc.txt.bak abc.txt
或者 sed -i“/five/d”abc.txt
在第六行添加:
sed -i "6a\\127.0.0.1;" text

sed  /`tail -n 1 passwd |awk -F: '{print $1}'`/'s/x//g' passwd
sed '$!D' passwd | sed 's/:x:/::/'


2.实例:提出文件第一列,同时第一行也去掉。sed -e '1d;s/\([^\t]\)\t.*$/\1/' /proc/cgroups


#subsys_name    hierarchy    num_cgroups    enabled
cpuset    0    1    1
cpu    0    1    1
cpuacct    0    1    1
memory    0    1    1
devices    0    1    1
freezer    0    1    1
blkio    0    1    1
perf_event    0    1    1
hugetlb    0    1    1
首先:去除第一行,sed -e '1d;' /proc/cgroups
cpuset    0    1    1
cpu    0    1    1
cpuacct    0    1    1
memory    0    1    1
devices    0    1    1
freezer    0    1    1
blkio    0    1    1
perf_event    0    1    1
hugetlb    0    1    1

然后:从每行一开头到识别到‘\t’(制表符)保留,\t符之后的全部替换为空。
sed -e '1d;s/\([^\t]\)\t.*$/\1/' /proc/cgroups
([^\t]):每行开始到\t符号


把时间的零去掉

[root@localhost show_me]# date %Y-%d-%m
2011-02-03
[root@localhost show_me]# date %F | sed 's/-0/-/g'
2011-3-2
[root@localhost show_me]# date %F | sed 's/-0/-/g'
2011-3-2

保留文件名

ns_osd-1.3-1.nd6.src.rpm
olderpc-desktop-0.2-10.nd6_ccs_22.src.rpm
rhythmbox-0.12.8-3.nd6.2.src.rpm
window-picker-applet-0.4.5-1netbook_nd6_countrypc_1.src.rpm

cat list2 | sed 's/-[0-9]/ /' | awk '{print $1 }'

阅读(965) | 评论(0) | 转发(0) |
0

上一篇:svn linux 使用

下一篇:shell脚本

给主人留下些什么吧!~~