小编Dan*_*Dan的帖子

使linux"等待"命令等待所有子进程

等待不等待所有子进程停止.这是我的脚本:

#!/bin/bash

titlename=`echo "$@"|sed 's/\..\{3\}$//'`
screen -X title "$titlename"

/usr/lib/process.bash -verbose $@

wait

bash -c "mail.bash $@"
screen -X title "$titlename.Done"
Run Code Online (Sandbox Code Playgroud)

我没有访问/usr/lib/process.bash,但它是一个经常更改的脚本,所以我想引用它...但在该脚本中:

#!/bin/ksh
#lots of random stuff
/usr/lib/runall $path $auto $params > /dev/null 2>&1&
Run Code Online (Sandbox Code Playgroud)

我的问题是runall创建了一个日志文件...而mail.bash假设要将该日志文件邮寄给我,但是等待不等待runall完成,它似乎只是等待process.bash完成.无论如何,有没有访问process.bash,或试图保持我自己的最新版本的process.bash,以使等待正确等待runall完成?(日志文件会覆盖以前的运行,所以我不能只检查是否存在日志文件,因为总有一个存在)

谢谢,丹

linux bash wait

7
推荐指数
2
解决办法
1万
查看次数

VBA:使用Excel查询访问。为什么这么慢?

我在网上找到了此代码以查询Access并将数据输入到excel(2003)中,但是它比它应该慢得多:

Sub DataPull(SQLQuery, CellPaste)
Dim Con As New ADODB.Connection
Dim RST As New ADODB.Recordset
Dim DBlocation As String, DBName As String
Dim ContractingQuery As String

If SQLQuery = "" Then

Else
    DBName = Range("DBName")
    If Right(DBName, 4) <> ".mdb" Then DBName = DBName + ".mdb"

    DBlocation = ActiveWorkbook.Path
    If Right(DBlocation, 1) <> "\" Then DBlocation = DBlocation + "\"

    Con.ConnectionString = DBlocation + DBName
    Con.Provider = "Microsoft.Jet.OLEDB.4.0"
    Con.Open

    Set RST = Con.Execute(SQLQuery)
    Range(CellPaste).CopyFromRecordset RST

    Con.Close
End If

End Sub
Run Code Online (Sandbox Code Playgroud)

问题是此代码需要很长时间。如果我打开Access并在其中运行查询,则大约需要1/10的时间。反正有加速的吗?还是这可能需要很长时间?我所有的查询都是简单的select查询,带有简单的where语句,没有连接。甚至 …

excel vba ado jet

6
推荐指数
1
解决办法
2万
查看次数

Python中非常大的布尔列表

我想在python中创建一个对象,它是一个大约200,000,000个真/假值的集合.因此,我可以最有效地更改或回忆任何给定的真/假值,以便我可以快速确定是否有任何给定的数字,如123,456,000是真还是假或更改其值.

列表是最好的方法吗?还是阵列?还是上课?或者只是使用位操作的长整数?或者是其他东西?

我有点像菜鸟,所以你可能不得不为我拼出的东西比我用其他一种我更了解的语言提问.请举例说明如何操作此对象.

谢谢

python arrays list

6
推荐指数
1
解决办法
5590
查看次数

SQL Query从每个类别中选择底部2

在Mysql中,我想从每个类别中选择最底层的2个项目

Category Value
1        1.3
1        4.8
1        3.7
1        1.6
2        9.5
2        9.9
2        9.2
2        10.3
3        4
3        8
3        16
Run Code Online (Sandbox Code Playgroud)

给我:

Category Value
1        1.3
1        1.6
2        9.5
2        9.2
3        4
3        8
Run Code Online (Sandbox Code Playgroud)

在我从sqlite3迁移之前,我必须首先从每个类别中选择最低,然后排除任何加入的类别,我必须再次选择每个类别中的最低值.然后,在类别中等于新的最低或更低的任何东西都赢了.如果出现平局,这也会选择超过2个,这很烦人......它也有很长的运行时间.

我的最终目标是计算一个人在一个类别中最低的2个中的次数(还有一个名称字段),这是我不知道该怎么做的一部分.谢谢

mysql sql greatest-n-per-group

6
推荐指数
2
解决办法
2633
查看次数

在linux中是否有一种简单的方法可以从命令行中删除文本网站?

我一直在寻找一个命令行工具,它可以将html代码转换为网站上显示的文本......所以它等同于在Web浏览器中选择所有内容然后将其粘贴到文本编辑器中. .

任何人都知道Ubuntu会做这件事吗?我正在尝试编写一个脚本来解析一些网页,但是我不想处理HTML,而只是想解析网站上出现的文本.

谢谢,

html linux bash parsing

6
推荐指数
2
解决办法
3241
查看次数

完成后,Python程序不会退出

我有以下脚本186.py:

S=[]
study=set([524287])

tmax=10**7
D={}
DF={}
dudcount=0
callcount=0

def matchval(t1,t2):
    if t1==t2:
        global dudcount
        dudcount+=1
    else:
        global callcount
        callcount+=1
        D.setdefault(t1,set([]))
        D.setdefault(t2,set([]))
        D[t1].add(t2)
        if t1 in D[t2]:
            DF.setdefault(t1,set([]))
            DF[t1].add(t2)
            DF.setdefault(t2,set([]))
            DF[t2].add(t1)

for k in xrange(27):
    t1=(100003 - 200003*(2*k+1) + 300007*(2*k+1)**3)%(1000000)
    S.append(t1)
    t2=(100003 - 200003*(2*k+2) + 300007*(2*k+2)**3)%(1000000)
    S.append(t2)
    matchval(t1,t2)

t1=(100003 - 200003*(55) + 300007*(55)**3)%(1000000)
S.append(t1)
t2=(S[31]+S.pop(0))%(1000000)
S.append(t2)
matchval(t1,t2)

for k in xrange(29,tmax+1):
    t1=(S[31]+S.pop(0))%(1000000)
    S.append(t1)

    t2=(S[31]+S.pop(0))%(1000000)
    S.append(t2)
    matchval(t1,t2)

D.setdefault(524287,set([]))
DF.setdefault(524287,set([]))
print D[524287]
print DF[524287]
print dudcount,callcount
print "Done"
Run Code Online (Sandbox Code Playgroud)

最后一行打印"完成",但发生这种情况时python不会退出.我输入以下命令:

$ time python 186.py …
Run Code Online (Sandbox Code Playgroud)

python linux memory-leaks

6
推荐指数
1
解决办法
1004
查看次数

Excel和制表符分隔文件问题

我遇到了我认为是Excel的一个奇怪的问题(在这种情况下,Excel 2007,但也许也是Excel 2003,但在我写这篇文章时无法访问它).

我可以可靠地将一些服务器数据转换为制表符分隔格式(已经这样做多年),然后使用Excel打开它 - 没问题.

然而,似乎正在发生的事情是,如果我在其中一个字段中有一个html <table>,看起来Excel 2007认为它应该将表转换为Excel中的行和列(不是我想要的).正如您可能想象的那样,这会抛弃整个电子表格.

所以问题是,有没有办法设置excel不执行此操作(可能是Excel中与读取制表符分隔文件有关的一些设置),或者我错过了什么?

谢谢.

excel excel-2007 tab-delimited-text

6
推荐指数
1
解决办法
2万
查看次数

如何在没有python或ruby的情况下在Vim中获得计数器变量?

我没有启用python/ruby​​.我的问题:我经常要编写如下内容:

%macro(200701);x gzip /home/test/200701.txt;run;
%macro(200702);x gzip /home/test/200702.txt;run;
%macro(200703);x gzip /home/test/200703.txt;run;
%macro(200704);x gzip /home/test/200704.txt;run;
%macro(200705);x gzip /home/test/200705.txt;run;
%macro(200706);x gzip /home/test/200706.txt;run;
%macro(200707);x gzip /home/test/200707.txt;run;
%macro(200708);x gzip /home/test/200708.txt;run;
%macro(200709);x gzip /home/test/200709.txt;run;
%macro(200710);x gzip /home/test/200710.txt;run;
%macro(200711);x gzip /home/test/200711.txt;run;
%macro(200712);x gzip /home/test/200712.txt;run;

%macro(200801);x gzip /home/test/200801.txt;run;
%macro(200802);x gzip /home/test/200802.txt;run;
%macro(200803);x gzip /home/test/200803.txt;run;
%macro(200804);x gzip /home/test/200804.txt;run;
%macro(200805);x gzip /home/test/200805.txt;run;
%macro(200806);x gzip /home/test/200806.txt;run;
%macro(200807);x gzip /home/test/200807.txt;run;
%macro(200808);x gzip /home/test/200808.txt;run;
%macro(200809);x gzip /home/test/200809.txt;run;
%macro(200810);x gzip /home/test/200810.txt;run;
%macro(200811);x gzip /home/test/200811.txt;run;
%macro(200812);x gzip /home/test/200812.txt;run;
Run Code Online (Sandbox Code Playgroud)

在Vim有这么快的方法吗?

我通常会输入:

%macro(200701);x gzip /home/test/200701.txt;run;
Run Code Online (Sandbox Code Playgroud)

然后发出以下命令:

yy11p10<up>13<right>r2<down>r3<down>r4<down>... …
Run Code Online (Sandbox Code Playgroud)

vim macros repeat

5
推荐指数
3
解决办法
2178
查看次数

Sqlite3:需要笛卡儿约会

我有一个表,它是在sqlite3数据库中播放的游戏列表.字段"datetime"是游戏结束时的日期时间.字段"持续时间"是游戏持续的秒数.我想知道过去24小时里有多少百分比至少有5场比赛同时进行.我想知道在给定时间运行的游戏有多少:

select count(*)
from games
where strftime('%s',datetime)+0 >= 1257173442 and
      strftime('%s',datetime)-duration <= 1257173442
Run Code Online (Sandbox Code Playgroud)

如果我的桌子只是每秒钟(或每30秒钟或某些东西)的列表,我可以做一个有意的卡地亚产品,如下所示:

select count(*)
from (
  select count(*) as concurrent, d.second
  from games g, date d
  where strftime('%s',datetime)+0 >= d.second and
        strftime('%s',datetime)-duration <= d.second and
        d.second >= strftime('%s','now') - 24*60*60 and
        d.second <= strftime('%s','now')
  group by d.second) x
where concurrent >=5
Run Code Online (Sandbox Code Playgroud)

有没有办法动态创建这个日期表?或者我可以得到类似的效果,而不必实际创建一个新表,这只是本周所有秒的列表?

谢谢

sql sqlite

5
推荐指数
1
解决办法
298
查看次数

Python:创建一个数组的副本

我有一个双阵列

alist[1][1]=-1
alist2=[]
for x in xrange(10):
    alist2.append(alist[x])
alist2[1][1]=15

print alist[1][1]
Run Code Online (Sandbox Code Playgroud)

我得到了15.显然我传递一个指针而不是一个实际的变量...有没有一个简单的方法来制作一个单独的双数组(没有共享指针)而不必进行双循环

谢谢,丹

python arrays pointers list

5
推荐指数
3
解决办法
1万
查看次数