Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4842982
  • 博文数量: 930
  • 博客积分: 12070
  • 博客等级: 上将
  • 技术积分: 11448
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-15 16:57
文章分类

全部博文(930)

文章存档

2011年(60)

2010年(220)

2009年(371)

2008年(279)

分类:

2008-11-07 20:49:56

以后讲陆续放出我学习过程中的点滴...shell进步,感悟的点滴...

1.删除文本后n行
 sed版本:
     sed '1{:a;N;'$n'!b a};$d;N;P;D' sed.data
 awk版本:
     n=7;awk 'BEGIN{n='$n'} { a[NR]=$0;while(NR sed.data
 head版本:
     head -n"$(($(cat sed.data| wc -l)-n))" sed.data

我贴点数据出来你就懂了,我自己也理解了好一会.
zj@zj:~/Script/cushell/08.11.06$ cat sed.data
0
1
2
zj@zj:~/Script/cushell/08.11.06$ n=2;sed '1{:a;N;'$n'!b a};$d;N;P;D' sed.data
0
先1{...}就是第一行的时候就:a;N;'$n'!b a,读取1到n行到模式空间
这个时候模式空间为0,1
$d由于还没有到$最后一行不d,就是不删除模式空间
这个时候N;读取了2;模式空间为0\n\1\n2了
P;D就是打印0,从模式空间删除0,这个时候模式空间为1\n2了.
这个时候进入下一次循环,由于最后一行$已经在模式空间了,删除模式空间.
ok,我是这么理解的,也不知道对不?仅属愚见

2.
  find ./ -name "*.c" -print 2 > /dev/null | xargs grep cccc //将find的错误重定向
  find ./ -name "*.c" -print | xargs grep cccc 2 > /dev/null //将xargs的错误重定向

3.vim-full才支持颜色显示.
4.
#!/bin/sh

if [ "$1" = "-h" ];then
   cat << help
   aaaaa
help
   exit 0
fi
第二个help前不能有空格 or 其它字符

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

上一篇:ipmsg协议

下一篇:linux 显示网络流量命令

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