rickcafe 发表于 2008-03-03 20:38

solaris下文本行倒序输出的6种方法

在llinux下,有个tac命令可将文本文件的文本行倒序排列输出,solaris下没有这种命令。
一时想不出方法,上了CU一问,得到专家指点,有下列方法可用:
1. 命令方法:
nl filename | sort -nr | cut -f2
这个方法很unix风格,使用多命令组合完成某种功能是典型的unix特点。
2. AWK方法:
awk '{line=$0}END{for(i=NR;i>0;i--)print line}' filename
这个利用了AWK的数组功能。
3. PERL方法:
perl -e 'print reverse ' filename
除非你熟悉PERL。
4. SED方法
sed '1!G;h;$!d' filename
这个操作很经典,如果你能看懂这行命令中的sed函数的意义,那对sed就有基本的了解了。
5. VI方法
vi指令 :g/^/m0
这个方法没有想到,真是简便实用。
6. shell方法
#!/bin/bash                                                                                                                                                   
                                                                                                                                                            
revread() {                                                                                                                                                   
local line                                                                                                                                                
read line || return 0                                                                                                                                       
revread                                                                                                                                                   
echo $line                                                                                                                                                
}                                                                                                                                                            
                                                                                                                                                            
revread


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/62001/showart_488769.html
页: [1]
查看完整版本: solaris下文本行倒序输出的6种方法