我想管道标准输出的程序,同时保持它在屏幕上。

通过一个简单的例子(这里使用echo只是为了说明):

$ echo 'ee' | foo ee <-我想看到的输出

我知道tee可以复制stdout到文件,但这不是我想要的。 $ echo 'ee' | tee output.txt | foo

我试着 $ echo 'ee' | tee /dev/stdout | foo但它不起作用,因为tee输出到/dev/stdout是通过管道输出到foo的

我有一个单子,大概有20000个单子。我使用每个列表的第三个元素作为标志。我想在这个列表上做一些操作,只要至少有一个元素的标志是0,就像这样:

my_list = [["a", "b", 0], ["c", "d", 0], ["e", "f", 0], .....]

开始时,所有标志都是0。我使用一个while循环来检查是否至少有一个元素的标志为0:

def check(list_):
    for item in list_:
        if item[2] == 0:
            return True
    return False

如果check(my_list)返回True,那么我继续处理列表:

while check(my_list):
    for item in my_list:
        if condition:
            item[2] = 1
        else:
            do_sth()

实际上,我想要删除my_list中的一个元素,因为我迭代它,但我不允许删除项目,因为我迭代它。

原来的my_list没有标记:

my_list = [["a", "b"], ["c", "d"], ["e", "f"], .....]

因为我不能在迭代时删除元素,所以我发明了这些标志。但是my_list包含很多项,while循环在每次for循环时读取所有这些项,这会消耗大量时间!你有什么建议吗?

我尝试了一遍又一遍地生成一个。pem文件,每次都从客户端帐户生成证书,然后使用终端生成。pem文件,但这没有用。谁能给出一个循序渐进的步骤?

连接到数据库后,我可以得到我的SqlDataReader中返回的所有列的名称吗?

在MySQL中有一个很好的方法来复制SQL Server函数ROW_NUMBER()?

例如:

SELECT 
    col1, col2, 
    ROW_NUMBER() OVER (PARTITION BY col1, col2 ORDER BY col3 DESC) AS intRow
FROM Table1

然后,例如,我可以添加一个条件,将intRow限制为1,以获得每个(col1, col2)对的col3最高的单行。

我有一个脚本,想向用户询问一些信息,但是脚本不能继续,直到用户填写这些信息。以下是我试图将一个命令放入循环中来实现这一点,但由于某种原因它不起作用:

echo "Please change password"
while passwd
do
    echo "Try again"
done

我尝试了很多while循环的变体:

while `passwd`
while [[ "`passwd`" -gt 0 ]]
while [ `passwd` -ne 0 ]]
# ... And much more

但我好像不能让它工作。

我正在尝试使用OpenCV实时绘制来自摄像机的一些数据。但是,实时绘图(使用matplotlib)似乎不能正常工作。

我把这个问题隔离在这个简单的例子中:

fig = plt.figure()
plt.axis([0, 1000, 0, 1])

i = 0
x = list()
y = list()

while i < 1000:
    temp_y = np.random.random()
    x.append(i)
    y.append(temp_y)
    plt.scatter(i, temp_y)
    i += 1
    plt.show()

我希望这个例子能分别画出1000个点。实际发生的情况是,窗口弹出,显示第一个点(好吧),然后等待循环结束,然后填充图的其余部分。

有什么想法,为什么我没有看到点填充一个时间?

我们的(PHP)框架有时会呈现值为YTowOnt9的隐藏输入。我在(巨大的)代码库中找不到那个字符串,也不知道它来自哪里。我决定用谷歌来查找那个特定的字符串,结果让我很惊讶。超过50万次,算是随机的。我没有找到任何描述值本身的页面。它在Stack Overflow上有0次命中。

YTowOnt9是某种神奇的弦吗?

我如何检查哪个版本的SBT我正在运行?

我已经设置了Bash文件,使用sbt-launch.jar,它可以工作,但是

sbt version

只显示“项目版本”(0.1)和

sbt --version

什么也不做。

我有一个来自客户端的非规范化事件日记CSV,我试图将其加载到MySQL表中,以便我可以重构成一个正常的格式。我创建了一个名为“CSVImport”的表,它有一个字段为CSV文件的每一列。CSV包含99列,所以这本身就已经是一项艰巨的任务:

CREATE TABLE 'CSVImport' (id INT);
ALTER TABLE CSVImport ADD COLUMN Title VARCHAR(256);
ALTER TABLE CSVImport ADD COLUMN Company VARCHAR(256);
ALTER TABLE CSVImport ADD COLUMN NumTickets VARCHAR(256);
...
ALTER TABLE CSVImport Date49 ADD COLUMN Date49 VARCHAR(256);
ALTER TABLE CSVImport Date50 ADD COLUMN Date50 VARCHAR(256);

表上没有约束,所有字段都包含VARCHAR(256)值,除了包含计数(用INT表示)、是/否(用BIT表示)、价格(用DECIMAL表示)和文本介绍(用text表示)的列。

我尝试将数据加载到文件中:

LOAD DATA INFILE '/home/paul/clientdata.csv' INTO TABLE CSVImport;
Query OK, 2023 rows affected, 65535 warnings (0.08 sec)
Records: 2023  Deleted: 0  Skipped: 0  Warnings: 198256
SELECT * FROM CSVImport;
| NULL             | NULL        | NULL           | NULL | NULL               | 
...

整个表被NULL填充。

我认为问题在于文本简介包含多行,MySQL解析文件时就好像每个新行对应一个数据库行一样。我可以毫无问题地将文件加载到OpenOffice中。

csv文件包含2593行和570条记录。第一行包含列名。我认为它是用逗号分隔的,文本显然是用双引号分隔的。

更新:

如果有疑问,请阅读手册:http://dev.mysql.com/doc/refman/5.0/en/load-data.html

我在LOAD DATA语句中添加了一些OpenOffice智能推断的信息,现在它加载了正确数量的记录:

LOAD DATA INFILE "/home/paul/clientdata.csv"
INTO TABLE CSVImport
COLUMNS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
ESCAPED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 LINES;

但是仍然有很多完全为空的记录,没有一个数据被加载似乎在正确的地方。