LinuxSir.Org  
| 网站首页 | 论坛帮助 |

欢迎来到LinuxSir.Org!
您还未登录,请登录后查看论坛,或者点击论坛上方的注册链接注册新账号。


发表新主题 回复
置顶的主题 精华主题  
主题工具
旧 03-06-11, 02:58 第 16 帖
KornLee
 
 
 
★☆★☆★☆★  
  注册日期: Nov 2002
  我的住址: LinuxWorld
  帖子: 6,960
  精华: 61
 

标题: 技巧:数值转换


代码:
#!/bin/bash #scriptname:conver #在BASH下简单实现十进制到二进制和十六进制的转换 cat<<info 1] 10=>2 2] 10=>16 info read input?"please enter your choice:" case $input in 1) echo -n "please a dec number:";read i1 echo "$i1==$(echo "obase=2;$i1"|bc)" ;; 2) echo -n "please a dec number:";read i2 echo "$i2==$(echo "obase=16;$i2"|bc)" ;; *) echo "wrong choice!" exit 1 ;; esac
是不是很方便
  KornLee 当前离线   回复时引用此帖
旧 03-06-19, 00:36 第 17 帖
KornLee
 
 
 
★☆★☆★☆★  
  注册日期: Nov 2002
  我的住址: LinuxWorld
  帖子: 6,960
  精华: 61
 

标题: 技巧:利用perl显示unix实践戳


perl -e 'print time,"\n"'
  KornLee 当前离线   回复时引用此帖
旧 03-06-22, 20:43 第 18 帖
KornLee
 
 
 
★☆★☆★☆★  
  注册日期: Nov 2002
  我的住址: LinuxWorld
  帖子: 6,960
  精华: 61
 

标题: 技巧:统计文本中单词数量的方法


有些单词在一篇文章中经常会出现很多次,怎么统计这个单词的个数呢?!
如:文件kshfile,统计shell这个单词的个数,
$cat kshfile
ksh
The "Korn" shell, written by David Korn of AT&T Bell Labs (now Lucent). Written as a major upgrade to "sh", it is compatible with it, but has many more internal commands for the most frequently used functions. It also incorporates most of the same features from tcsh which enhance interactive use (command line history recall etc.). This shell is now available on most systems. It was slow
to gain acceptance because earlier versions were encumbered by AT&T licensing.
$cat kshfile|tr " " "\n"|grep -wc shell
2
  KornLee 当前离线   回复时引用此帖
旧 03-06-23, 01:10 第 19 帖
KornLee
 
 
 
★☆★☆★☆★  
  注册日期: Nov 2002
  我的住址: LinuxWorld
  帖子: 6,960
  精华: 61
 

标题: 技巧:显示文本奇数偶数的方法


[javalee//home/javalee/myshell]cat tmp
aaaaaa
dddddd
kasdkfkk
djhasdjf
dfddf
kjsdfklkls
asdfjklkas
#显示文件tmp的奇数行的内容:
[javalee//home/javalee/myshell]sed -n '1,$p;n' tmp
aaaaaa
kasdkfkk
dfddf
asdfjklkas
#显示文件tmp的偶数行的内容:
[javalee//home/javalee/myshell]sed -n '1,$n;p' tmp
dddddd
djhasdjf
kjsdfklkls
  KornLee 当前离线   回复时引用此帖
旧 03-06-27, 22:38 第 20 帖
777
 
777 的头像
 
 
已封禁  
  注册日期: Jun 2003
  我的住址: 中国
  帖子: 990
  精华: 6
 

#比较两个数的大小
#! /bin/bash
max=$1
while [ $2 ]; do
[ $max -lt $2 ] && max=$2
shift
done
echo $max
  777 当前离线   回复时引用此帖
旧 03-06-27, 23:26 第 21 帖
KornLee
 
 
 
★☆★☆★☆★  
  注册日期: Nov 2002
  我的住址: LinuxWorld
  帖子: 6,960
  精华: 61
 

多谢777的启发我也来一个!
比较多个数字的技巧:
#! /bin/bash
echo "max:$(for i in $(echo $*);do echo $i;done|sort -n|sed -n '$p')"
  KornLee 当前离线   回复时引用此帖
旧 03-06-30, 02:13 第 22 帖
777
 
777 的头像
 
 
已封禁  
  注册日期: Jun 2003
  我的住址: 中国
  帖子: 990
  精华: 6
 

这是我抄的
比较两个数是这样:
#!/bin/bash
echo "first num:"
read a
echo "second num:"
read b
if [ $a -gt $b ]
then
max=$a;esle max=$b
fi
clear
echo $max

那怎么一个个地读多个数进一个变量
  777 当前离线   回复时引用此帖
旧 03-06-30, 11:50 第 23 帖
KornLee
 
 
 
★☆★☆★☆★  
  注册日期: Nov 2002
  我的住址: LinuxWorld
  帖子: 6,960
  精华: 61
 

用位置参数比较简单!
cat bj
#! /bin/bash
echo "max:$(for i in $(echo $*);do echo $i;done|sort -n|sed -n '$p')"

[javalee//home/javalee/myshell]bj 23 45 9 4 3 45 3 3 2 2 1 45
max:45
  KornLee 当前离线   回复时引用此帖
旧 03-07-04, 13:48 第 24 帖
KornLee
 
 
 
★☆★☆★☆★  
  注册日期: Nov 2002
  我的住址: LinuxWorld
  帖子: 6,960
  精华: 61
 

标题: 技巧:倒读文本


例如文章:
$cat -n tmp
1 abcdefgh
2 123234234
3 sjdfk23423
1,行号倒序:
$cat -n tmp|tac #tac和cat很有趣吧~~
3 sjdfk23423
2 123234234
1 abcdefgh
2,每行倒读:
$cat tmp|rev
hgfedcba
432432321
32432kfdjs
3,全部倒过来:
$cat -n tmp|rev|tac
32432kfdjs 3
432432321 2
hgfedcba 1
4,用sed也可以解决:(要求对sed有足够的理解)
$cat -n tmp|sed '/\n/!G;s/\(.\)\(.*\n\)/&\2\1/;//D;s/.//'
hgfedcba 1
432432321 2
32432kfdjs 3
感谢:idkey兄!
  KornLee 当前离线   回复时引用此帖
旧 03-07-04, 14:42 第 25 帖
KornLee
 
 
 
★☆★☆★☆★  
  注册日期: Nov 2002
  我的住址: LinuxWorld
  帖子: 6,960
  精华: 61
 

标题: 技巧:把汉字转换成十六进制和二进制的方法


命令行下,利用perl的unpack函数,可以将汉字巧妙的变成十六进制和二进制,如:
[javalee//home/javalee/myshell]perl -le 'print unpack("B*","中");' #把汉字"中"转换成二进制
1101011011010000
[javalee//home/javalee/myshell]perl -le 'print unpack("H*","国");' #把汉字"国"转换成十六进制
b9fa
  KornLee 当前离线   回复时引用此帖
旧 03-07-04, 22:26 第 26 帖
idkey
 
idkey 的头像
 
 
注册会员  
  注册日期: Sep 2002
  帖子: 366
  精华: 1
 

od 也可以,比如
$ echo '中国' | od -h
0000000 d0d6 fab9 000a
0000005







__________________
我是 xyb 的马甲,呵呵

...."Have you mooed today?"...
  idkey 当前离线   回复时引用此帖
旧 03-07-06, 15:37 第 27 帖
ilmargaret
 
ilmargaret 的头像
 
 
注册会员  
  注册日期: May 2003
  我的住址: 上海
  帖子: 8
  精华: 0
 

标题: 不用定义函数也可以直接运行自己的脚本


To javalee:
我按照你的方法将脚本写成函数的形式并且在profile里指明了路径,然后在命令行里执行函数时不输出任何结果,也没有报错.但是将脚本改为原来普通的形式后重启系统,竟然在任何目录下都可以象执行ls命令一样成功地执行了脚本,也就是说不用定义函数也可以直接运行自己的脚本?







__________________
我装了一个1英寸的显示器,这样可以使我的错误看起来小些!

此帖于 03-07-06 17:36 被 ilmargaret 编辑.
  ilmargaret 当前离线   回复时引用此帖
旧 03-07-06, 16:39 第 28 帖
KornLee
 
 
 
★☆★☆★☆★  
  注册日期: Nov 2002
  我的住址: LinuxWorld
  帖子: 6,960
  精华: 61
 

引用:
我按照你的方法将脚本写成函数的形式并且在profile里指明了路径,然后在命令行里执行函数时不输出任何结果,也没有报错.但是将脚本改为原来普通的形式后重启系统,竟然在任何目录下都可以象执行ls命令一样成功地执行了脚本,也就是说不用定义函数也可以直接运行自己的脚本?
当然!但是直接运行脚本是因为在path中你已经为shell提供了你脚本所在的路径,而一些常用的小脚本,一函数的方法去定义的话,一般来说运行速度要比你每次从磁盘中读取文件要快得多而且占用资源很少!因为函数是在启动之后就已经驻留在内存啦.
  KornLee 当前离线   回复时引用此帖
旧 03-07-10, 10:04 第 29 帖
badb0y
 
badb0y 的头像
 
 
注册会员  
  注册日期: Jul 2003
  帖子: 2
  精华: 0
 

#!/bin/sh
if [ $# -ne 1 ]
then
echo "usage: $0 clean-ip"
exit 1
fi

if [ -e .bash_history ]
then
cat /dev/null > .bash_history
echo "history clean ok!"
else
echo "history not found!"
fi

if [ -e /var/log/lastlog ]
then
grep -v $1 /var/log/lastlog > /tmp/a ; mv /tmp/a /var/log/lastlog
echo "/var/log/lastlog clean ok!"
else
echo "/var/log/lastlog not found!"
fi

if [ -e /var/log/messages ]
then
grep -v $1 /var/log/messages > /tmp/a ; mv /tmp/a /var/log/messages
echo "/var/log/messages clean ok!"
else
echo "/var/log/messages not found!"
fi

if [ -e /var/log/wtmp ]
then
grep -v $1 /var/log/wtmp > /tmp/a ; mv /tmp/a /var/log/wtmp
echo "/var/log/wtmp clean ok!"
else
echo "/var/log/wtmp not found!"
fi

if [ -e /var/log/xferlog ]
then
grep -v $1 /var/log/xferlog > /tmp/a && mv /tmp/a /var/log/xferlog
echo "/var/log/xferlog clean ok!"
else
echo "/var/log/xferlog not found!"
fi

if [ -e /etc/utmp ]
then
grep -v $1 /etc/utmp > /tmp/a && mv /tmp/a /etc/utmp
echo "/etc/utmp clean ok!"
else
echo "/etc/utmp not found!"
fi
  badb0y 当前离线   回复时引用此帖
旧 03-07-10, 14:28 第 30 帖
KornLee
 
 
 
★☆★☆★☆★  
  注册日期: Nov 2002
  我的住址: LinuxWorld
  帖子: 6,960
  精华: 61
 

to badb0y:
最好把说明,注释,用途之类的加上,以便兄弟们阅读!
谢谢~~
  KornLee 当前离线   回复时引用此帖
发表新主题 回复


主题工具

发帖规则
您 [不可以] 发表新主题
您 [不可以] 回复主题
您 [不可以] 上传附件
您 [不可以] 编辑您的帖子

已 [启用] BB 代码
已 [启用] 表情符号
已 [启用] IMG 代码
已 [禁用] HTML 代码
[论坛跳转…]


所有时间均为[北京时间]。现在的时间是 16:23


Powered by vBulletin 版本 3.6.8
版权所有 ©2000 - 2012, Jelsoft Enterprises Ltd.
官方中文技术支持: vBulletin 中文
版权所有 ©2002 - 2011, LinuxSir.Org