shell里面一些东东 论坛里找的

1. sed 替换部分字符
temp内容
aaabbb|aaacccccc|aaa.ddddd|
aaaeee|aaafffffffff|aaa.ggggg|
要达到目的
aaa[a_z]*这个正则表达式(也就是文件前两个域)数据中的aaa替换成111
sed 's/aaa\([a-z]\)/111\1/g' file

再比如

shell > ifconfig eth1|sed  -n '2p'
inet addr:192.168.0.1  Bcast:192.168.0.255  Mask:255.255.255.0
#上面的输出 从中取出IP
sed 's/^.*:\(.*\) Bcast.*$/\1/g'
192.168.0.1

sed 's/^.*:\(.*\).*Mask:\(.*\)/\1\2/g'
192.168.0.255  255.255.255.0


2 检测字符串的长度
expr length yourstring
${#var}   
3  检测字符串是否为空

[ "x`echo $1|tr -d "[[:blank:]]"`" = "x"]
返回0 表示$1为空串

4 检测是否为数字
read;echo $REPLY|grep -q '^[:digit:].*$' && echo digit || echo stirng
5 检测PID是否在运行

kill -0 PID
pidof cmdName

6 替换变量中部分字符的方法

a="1.2 1.3"
echo ${a/ /+}   #把变量a中的空格变成+号
1.2+1.3
####################
js(){
str=$@
echo ${str// /+}|bc -l
}
run:
js 1.2 2.3

7 sed 替换部分字符
例一:请教cut 后能否加入分割符:
 我将一个文件cut -c 1-8,13-22,25-32,133-152后产生的文件是连在一起的,所需的4列之间没有分隔符,请教如何加上分隔符“|”

sed -n 's/^\(.\{8\}\).\{4\}\(.\{10\}\).\{2\}\(.\{8\}\).\{101\}\(.\{19\}\)/\1|\2|\3|\4/p' file
例二: 格式如下:
2611491:20060120182203:0000007
2621492:20060121182213:0000287
....................
请请如何用程序实现达到如下效果:
在第一列前加个0,把第2列拆分成2列(前8位一个列,后边6列为一列),把a.txt文件的第3列数据的前边的0去掉如上边的0000007显示成7不要前边的0.
具体显示的结果如下:
02611491:20060120:182203:7
02621492:20060121:182213:287
sed 's/\([^:]*:.\{8\}\)\([^:]*\):\(0*\)\(.*\)/0\1:\2:\4/ ' file

awk实现
awk 'BEGIN{FS=OFS=":"}{printf "%-20s:%-20s:%-20s:%d\n","0"$1,substr($2,1,8),substr($2,9,6),$3}' urfile

8 根据使用的控制台来来判断client
比如说,在windows设备上登录UNIX,登录后如何获得本机的IP,用netstat -a是可以查到所有的telnet,但是如何对应呢?
w|grep $( ps|awk 'NR==2{print $2}')
$( ps|awk 'NR==2{print $2}') 返回的是当前shell使用的控制台
 
<script type=text/javascript charset=utf-8 src="http://static.bshare.cn/b/buttonLite.js#style=-1&uuid=&pophcol=3&lang=zh"></script> <script type=text/javascript charset=utf-8 src="http://static.bshare.cn/b/bshareC0.js"></script>
阅读(860) | 评论(0) | 转发(0) |
0

上一篇:seq的使用

下一篇:articles

给主人留下些什么吧!~~
评论热议
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值