shell下十二种读文件的方法
来源:互联网 发布:xp连接网络打印机设置 编辑:程序博客网 时间:2024/05/20 06:27
作者:Webmaster 来源:Linux-cn.com 点击: 日期:2007-05-09 [收藏] [投稿]
以KSH为例:
#!/usr/bin/ksh
#
# SCRIPT: 12_ways_to_parse.ksh.ksh
#
#
# REV: 1.2.A
#
# PURPOSE: This script shows the different ways of reading
# a file line by line. Again there is not just one way
# to read a file line by line and some are faster than
# others and some are more intuitive than others.
#
# REV LIST:
#
# 03/15/2002 - Randy Michael
# Set each of the while loops up as functions and the timing
# of each function to see which one is the fastest.
#
#######################################################################
#
# NOTE: To output the timing to a file use the following syntax:
#
# 12_ways_to_parse.ksh file_to_process > output_file_name 2>&1
#
# The actaul timing data is sent to standard error, file
# descriptor (2), and the function name header is sent
# to standard output, file descriptor (1).
#
#######################################################################
#
# set -n # Uncomment to check command syntax without any execution
# set -x # Uncomment to debug this script
#
FILENAME="$1"
TIMEFILE="/tmp/loopfile.out"
>$TIMEFILE
THIS_SCRIPT=$(basename $0)
######################################
function usage
{
echo "/nUSAGE: $THIS_SCRIPT file_to_process/n"
echo "OR - To send the output to a file use: "
echo "/n$THIS_SCRIPT file_to_process > output_file_name 2>&1 /n"
exit 1
}
######################################
function while_read_LINE
{
cat $FILENAME | while read LINE
do
echo "$LINE"
:
done
}
######################################
function while_read_LINE_bottom
{
while read LINE
do
echo "$LINE"
:
done < $FILENAME
}
######################################
function while_line_LINE_bottom
{
while line LINE
do
echo $LINE
:
done < $FILENAME
}
######################################
function cat_while_LINE_line
{
cat $FILENAME | while LINE=`line`
do
echo "$LINE"
:
done
}
######################################
function while_line_LINE
{
cat $FILENAME | while line LINE
do
echo "$LINE"
:
done
}
######################################
function while_LINE_line_bottom
{
while LINE=`line`
do
echo "$LINE"
:
done < $FILENAME
}
######################################
function while_LINE_line_cmdsub2
{
cat $FILENAME | while LINE=$(line)
do
echo "$LINE"
:
done
}
######################################
function while_LINE_line_bottom_cmdsub2
{
while LINE=$(line)
do
echo "$LINE"
:
done < $FILENAME
}
######################################
function while_read_LINE_FD
{
exec 3<&0
exec 0< $FILENAME
while read LINE
do
echo "$LINE"
:
done
exec 0<&3
}
######################################
function while_LINE_line_FD
{
exec 3<&0
exec 0< $FILENAME
while LINE=`line`
do
echo "$LINE"
:
done
exec 0<&3
}
######################################
function while_LINE_line_cmdsub2_FD
{
exec 3<&0
exec 0< $FILENAME
while LINE=$(line)
do
print "$LINE"
:
done
exec 0<&3
}
######################################
function while_line_LINE_FD
{
exec 3<&0
exec 0< $FILENAME
while line LINE
do
echo "$LINE"
:
done
exec 0<&3
}
######################################
########### START OF MAIN ############
######################################
# Test the Input
# Looking for exactly one parameter
(( $# == 1 )) || usage
# Does the file exist as a regular file?
[[ -f $1 ]] || usage
echo "/nStarting File Processing of each Method/n"
echo "Method 1:"
echo "/nfunction while_read_LINE/n" >> $TIMEFILE
echo "function while_read_LINE"
time while_read_LINE >> $TIMEFILE
echo "/nMethod 2:"
echo "/nfunction while_read_LINE_bottom/n" >> $TIMEFILE
echo "function while_read_LINE_bottom"
time while_read_LINE_bottom >> $TIMEFILE
echo "/nMethod 3:"
echo "/nfunction while_line_LINE_bottom/n" >> $TIMEFILE
echo "function while_line_LINE_bottom"
time while_line_LINE_bottom >> $TIMEFILE
echo "/nMethod 4:"
echo "/nfunction cat_while_LINE_line/n" >> $TIMEFILE
echo "function cat_while_LINE_line"
time cat_while_LINE_line >> $TIMEFILE
echo "/nMethod 5:"
echo "/nfunction while_line_LINE/n" >> $TIMEFILE
echo "function while_line_LINE"
time while_line_LINE >> $TIMEFILE
echo "/nMethod 6:"
echo "/nfunction while_LINE_line_bottom/n" >> $TIMEFILE
echo "function while_LINE_line_bottom"
time while_LINE_line_bottom >> $TIMEFILE
echo "/nMethod 7:"
echo "/nfunction while_LINE_line_cmdsub2/n" >> $TIMEFILE
echo "function while_LINE_line_cmdsub2"
time while_LINE_line_cmdsub2 >> $TIMEFILE
echo "/nMethod 8:"
echo "/nfunction while_LINE_line_bottom_cmdsub2/n" >> $TIMEFILE
echo "function while_LINE_line_bottom_cmdsub2"
time while_LINE_line_bottom_cmdsub2 >> $TIMEFILE
echo "/nMethod 9:"
echo "/nfunction while_read_LINE_FD/n" >> $TIMEFILE
echo "function while_read_LINE_FD"
time while_read_LINE_FD >> $TIMEFILE
echo "/nMethod 10:"
echo "/nfunction while_LINE_line_FD/n" >> $TIMEFILE
echo "function while_LINE_line_FD"
time while_LINE_line_FD >> $TIMEFILE
echo "/nMethod 11:"
echo "/nfunction while_LINE_line_cmdsub2_FD/n" >> $TIMEFILE
echo "function while_LINE_line_cmdsub2_FD"
time while_LINE_line_cmdsub2_FD >> $TIMEFILE
echo "/nMethod 12:"
echo "/nfunction while_line_LINE_FD/n" >> $TIMEFILE
echo "function while_line_LINE_FD"
time while_line_LINE_FD >> $TIMEFILE
- SHELL下十二种读文件的方法
- shell下十二种读文件的方法
- shell下十二种读文件的方法 收藏
- SHELL下十二种读文件的方法及运行效率
- Shell读文件的几种方法总结(b shell)
- Shell读文件的几种方法总结(b shell)
- shell读文件的方法
- shell下同时读取多个文件的方法
- XP 的十二种方法
- [Linux]:Shell读文件的几种方法总结(b shell)
- SHELL读取文件的方法
- shell读取文件的方法
- 溢出下shell下的文件上传
- 溢出下shell下的文件上传
- Linux Shell 学习笔记(十二)---文件包含
- 电脑密码的十二种破解方法
- 辨别虚假流量的十二种方法
- 个人网站推广的十二种方法
- 测试
- [转]牛人的发现
- 跟上队伍的步伐~
- 我想把格式完全一样的很多文件一下全部导入到一个新的文件里,应该怎么做?
- SQL Server 用sql语句导入导出总结
- shell下十二种读文件的方法
- 里的nowrap是什么意思啊?? 不换行
- Python遍历文件树
- 类似GOOGLE的分页函数
- Jsp&Servelet 学习笔记(1)
- DataGridView同时删除多行
- Jsp&Servelet 学习笔记(2)
- 服务器端控件用javascript脚本来验证
- 数据库类