分类: LINUX
2011-10-08 16:41:27
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"
语法格式sort [ -A ] [ -b ] [ -c ] [ -d ] [ -f ] [ -i ] [ -m] [ -n ] [ -r ] [ -u ] [ -o OutFile ]
[ -t Character ] [ -T Directory ] [ -y [ Kilobytes ] ] [ -z RecordSize ] [ [ + [ FSkip ]
[ .CSkip ] [ b ] [ d ] [ f ] [ i ] [ n ] [ r ] ] [ - [ FSkip ] [ .CSkip ] [ b ] [ d ] [ f ]
[ i ] [ n ] [ r ] ] ] [ -k KeyDefinition ] [文档 ]
使用说明sort 命令对 File 参数指定的文档中的行排序,并将结果写到标准输出。假如 File 参数指定多个文档,
那么 sort 命令将这些文档连接起来,并当作一个文档进行排序。-(减号)代替文档名指定标准输入。
假如您不指定任何文档名,那么该命令对标准输入排序。能够使用 -o 标志指定输出文档。
假如不指定任何标志,sort 命令基于当前语言环境的整理顺序对输入文档的任何行排序。
主要参数-A 使用 ASCII 整理顺序代替当前语言环境的整理顺序在逐字节的基础上排序。
-b 忽略前导空格和制表符,找出字段的第一或最后列。
-c 检查输入是否已按照标志中指定的排序规则进行排序。假如输入文档排序不正确,就返回一个非零值。
-d 使用字典顺序排序。比较中仅考虑字母、数字和空格。
-f 比较前将任何小写字母改成大写字母。
-i 比较中忽略任何非显示字符。
-k KeyDefinition 指定排序关键字。KeyDefinition 选项的格式为:
[ FStart [ .CStart ] ] [ Modifier ] [ , [ FEnd [ .CEnd ] ][ Modifier ] ]
排序关键字包括任何以 FStart 变量指定的字段和 CStart 变量指定的列开头的字符及以 FEnd 变量指定的字段和
CEnd 变量指定的列结束的字符。Modifier 变量的值能够是 b、d、f、i、n 或 r。修饰符和同一字母的标志等价。
-m 只合并多个输入文档;假设输入文档已排序。
-n 按算术值对数字字段排序。数字字段可包含前导空格、可选减号、十进制数字、千分位分隔符和可选基数符。
对包含任何非数字字符的字段进行数字排序会出现无法预知的结果。
-o OutFile 将输出指向 OutFile 参数指定的文档,而不是标准输出。OutFile 参数值能够和 File 参数值相同。
-r 颠倒指定排序的顺序。
-t Character 指定 Character 为单一的字段分隔符。
-u 禁止按照排序关键字和选项的任何等同排序(每一组行中一行除外)。
-T Directory 将创建的任何临时文档放入 Directory 参数指定的目录中。
-y[Kilobytes] 用 Kilobytes 参数指定的主存储的千字节数启动 sort 命令,并根据需要增加存储量。
(假如 Kilobytes 参数指定的值小于最小存储站点或大于最大存储站点,就以这个最小存储站点或最大存储站点取代)。
假如省略 -y 标志,sort 命令以缺省的存储大小启动。
-y0 标志用最小存储启动,而 -y 标志(不带 Kilobytes 值)用最大存储启动。sort 命令使用的存储量显著地影响性能。
以大存储量对小文档排序将很浪费。
-z RecordSize 假如正在排序的任一行大于缺省的缓冲区大小,要防止出现异常终止。
指定 -c 或 -m 标志时,省略排序阶段,使用系统的缺省缓冲大小。假如已排序行超出这一大小,排序异常终止。
-z 选项指定排序阶段最长行的记录,因而可在合并阶段分配足够的缓冲区。
RecordSize 必须指明等于或大于要合并的最长行的字节值。
应用实例