我的学习历程  
ASP.NET+Atlas+Linux学习历程
公告
日历
统计
  • 随笔 - 15
  • 文章 - 3
  • 评论 - 6
  • 引用 - 0

导航

 

2006年11月27日

#!/bin/bash
clear
record_file=passwd
again=""
while [ "$again" = "" ]
do
clear
echo "            用户信息主菜单"
echo "=================================="
echo "1、  打印当前所有记录"
echo "2、  打印当前所有记录(格式化后的)"
echo "3、  打印用户名和用户ID"
echo "4、  打印(格式化了的)用户名和用户ID"
echo "5、  查询特定记录"
echo "6、  增加新记录"
echo "7、  删除记录"
echo "Q----退出"
echo -n "你的选择是:"
read num
case $num in
1)
printf "\n"
awk -F ":" '{print $1 " " $2" " $3 " " $4 " " $5 " " $6 " " $7}' passwd
printf "\n"
echo -n "按回车键继续....."
read again;;
2)
printf "\n"
sort +1 passwd | awk -F ":" '{print $1 "\t" $2 "\t" $3 "\t" $4 "\t" $5 "\t" $6 "\t" $7 "\t"}'
printf "\n"
echo -n "按回车键继续....."
read again;;
3)
printf "\n"
awk -F ":" '{print $1 "," $3}' passwd
printf "\n"
echo -n "按回车键继续....."
read again
;;
4)
printf "\n"
sort +1 passwd | awk -F ":" '{print "用户名:" $1 "\t" "用户ID:" $3}'
printf "\n"
echo -n "按回车键继续....."
read again;;
5)
printf "\n"
echo -n "输入关键字:"
read keyword
                                                                                                                                              
;;
Q)
echo "=============================="
echo "    Thanks for use!  ^_^"
echo "=============================="
again=quit;;
q)
echo "=============================="
echo "    Thanks for use!  ^_^"
echo "=============================="
again=quit;;
"")echo -n "Selection not entered. Press Enter to continue…"
read again;;
*)
echo -n "无效的代码,请按回车健继续....."
read again
;;
esac
done


posted @ 2006-11-27 22:39 剑落飘香 阅读(185) 评论(0) 编辑
 
请教SORT的详细用法

sort

cat students
John Johnsen    john.johnsen@tp.com     503.555.1111
Hassaan Sarwar  hsarwar@k12.st.or       503.444.2132
David Kendall   d_kendall@msnbc.org     229.111.2013

sort students
David Kendall   d_kendall@msnbc.org     229.111.2013
Hassaan Sarwar  hsarwar@k12.st.or       503.444.2132
John Johnsen    john.johnsen@tp.com     503.555.1111

sort +1 students
根据第2字段 (字段号1) 开始的整行作为排序关键字
John Johnsen    john.johnsen@tp.com     503.555.1111
David Kendall   d_kendall@msnbc.org     229.111.2013
Hassaan Sarwar  hsarwar@k12.st.or       503.444.2132

sort +3 -r -b students
以电话号码为关键字,对文件进行反向排序 (-b用于忽略字段之间的空格)
John Johnsen    john.johnsen@tp.com     503.555.1111
Hassaan Sarwar  hsarwar@k12.st.or       503.444.2132
David Kendall   d_kendall@msnbc.org     229.111.2013

sort +1 -2 +3 -b students
将姓氏为主关键字,将电话号码作为次关键字
John Johnsen    john.johnsen@tp.com     503.555.1111
David Kendall   d_kendall@msnbc.org     229.111.2013
Hassaan Sarwar  hsarwar@k12.st.or       503.444.2132

sort -k start,end files (关键字开始列,关键字结束列)
sort -rn -k 2,2 students

John Johnsen    john.johnsen@tp.com     503.555.1111
Hassaan Sarwar  hsarwar@k12.st.or       503.444.2132
David Kendall   d_kendall@msnbc.org     229.111.2013

sort -t: -k3,3 -k4,4 -k6,6 -k7n,7

-k3,3 就是只征对第3列排序,不排序后面的列
相当于 sort -t: +2 -3 +3 -4 +5 -6 +6n -7
-k7n 是对第7列按数字排序

现有一组数据文件进行排序,准备使用sort命令完成。但是测试并不成功,不知为何。请大家指点:
1。数据字段不是固定长度。
2。数据字段位置可辨,行首及行中、行尾三种情况
例如:
11,222,33
2,12,90
23,235,3
11111111,0,10
33,222222,22
0,90,222222222

求助:请问按行首排序得sort命令如何?行中、行尾呢?

sort -n -t, +0 -1 +1 -2 +2 -3 filename

看虚存:
#ps av |sort +5 -r |head -n 5
看实存:
#ps av |sort +6 -r |head -n 5
看内存%:
# ps au |head -n 1; ps au |egrep -v "RSS"|sort +3 -r |head -n 5


du | sort -n

sort按照指定的分割符把输入分割。按照指定列对文件排序
sort [-t 分割符] [-r逆序] [+n指定用来排序的列] file
$sort -t: passwd
以:分割行。然后按照分类键0排序
$sort -t: -r passwd
排序求逆
$sort -t: +1 passwd
按照第二列的值进行排序
$sort -t: +2n passwd
按照第三列按数值大小排序
$sort -t: +0 -2 +3 passwd
按照域0排序,忽略域2,然后使用域3排序
sort -t: -k3,3 -k4,4 -k6,6 -k7n,7

-k3,3 就是只征对第3列排序,不排序后面的列
相当于 sort -t: +2 -3 +3 -4 +5 -6 +6n -7
-k7n 是对第7列按数字排序


现有一组数据文件进行排序,准备使用sort命令完成。但是测试并不成功,不知为何。请大家指点:
1。数据字段不是固定长度。
2。数据字段位置可辨,行首及行中、行尾三种情况
例如:
11,222,33
2,12,90
23,235,3
11111111,0,10
33,222222,22
0,90,222222222

求助:请问按行首排序得sort命令如何?行中、行尾呢?

sort -n -t, +0 -1 +1 -2 +2 -3 filename

看CPU:
# ps auxwww |head -n 5
看虚存:
#ps av |sort +5 -r |head -n 5
看实存:
#ps av |sort +6 -r |head -n 5
看内存%:
# ps au |head -n 1; ps au |egrep -v "RSS"|sort +3 -r |head -n 5


du | sort -n

sort按照指定的分割符把输入分割。按照指定列对文件排序
sort [-t 分割符] [-r逆序] [+n指定用来排序的列] file
$sort -t: passwd
以:分割行。然后按照分类键0排序
$sort -t: -r passwd
排序求逆
$sort -t: +1 passwd
按照第二列的值进行排序
$sort -t: +2n passwd
按照第三列按数值大小排序
$sort -t: +0 -2 +3 passwd
按照域0排序,忽略域2,然后使用域3排序

cut截取子字串
1、cut -c char-list file
echo 2003060160910.dat | cut -c1-9
200306018
取出1-9个字符

2、cut -d 分隔符 -f field-list file
cut -d: -f1 passwd
alias
qmaild
qmaill
qmailp
qmailq
qmailr
qmails
vpopmail
按照:分隔,取出第一个字段

tr主要用于文字替换和压缩重复的字符
。大小写转换
echo abcdefg | tr "a-z" "A-Z"
ABCDEFG

。压缩空格
echo "ab cd ef g" | tr -s " "
ab cd ef g

。压缩空行
cat file | tr -s "\n"
posted @ 2006-11-27 21:59 剑落飘香 阅读(449) 评论(1) 编辑
 
Copyright © 剑落飘香 Powered by: 博客园 模板提供:沪江博客