我有一个bash脚本,它在两个时间戳之间切出一个日志文件的一部分,但由于文件的大小,运行需要很长时间.
如果我要在Perl中重写脚本,我可以实现显着的速度提升 - 或者我是否必须转向像C这样的东西才能实现这一目标?
#!/bin/bash
if [ $# -ne 3 ]; then
echo "USAGE $0 <logfile(s)> <from date (epoch)> <to date (epoch)>"
exit 1
fi
LOGFILES=$1
FROM=$2
TO=$3
rm -f /tmp/getlogs??????
TEMP=`mktemp /tmp/getlogsXXXXXX`
## LOGS NEED TO BE LISTED CHRONOLOGICALLY
ls -lnt $LOGFILES|awk '{print $8}' > $TEMP
LOGFILES=`tac $TEMP`
cp /dev/null $TEMP
findEntry() {
RETURN=0
dt=$1
fil=$2
ln1=$3
ln2=$4
t1=`tail -n+$ln1 $fil|head -n1|cut -c1-15`
dt1=`date -d "$t1" +%s`
t2=`tail -n+$ln2 $fil|head -n1|cut -c1-15`
dt2=`date -d "$t2" +%s`
if [ $dt …Run Code Online (Sandbox Code Playgroud) 我对bash shell编程有基本的了解,可以完成备份等简单的工作.
现在我正在考虑处理更高级的任务,并且必须决定是否应该坚持使用bash并研究更多高级主题,或者学习Python.
由于我不得不花时间学习任何一种方式,我想把它用在能给我最大优势的语言上.
有关:
Python和/或Perl VS bash
在Perl或Python上使用Bash是否有优势?
Python vs Bash - 在哪种任务中,每个人都会以其他方式表现出来?