小编raf*_*afa的帖子

用lsof检查文件是否打开

我使用的是Linux Mint的13 Xfce和我有一个文件名为wv.gold我试图在bash,以检查它是否是由任何程序中打开(例如,我打开了它sublime-textgedit)

在很多论坛上,人们会说,如果我跑,lsof | grep filename我应该得到0它是否打开或者256(1)它是否关闭,但实际上如果我运行使用grep "wv.gold",我什么也得不到(空字符串),如果我使用它,我会得到一个小清单grep gold.

列表如下:

bash       2045  user   cwd   DIR   8,1     4096     658031 /home/user/path/to/dir
bash       2082  user   cwd   DIR   8,1     4096     658031 /home/user/path/to/dir
watch      4463  user   cwd   DIR   8,1     4096     658031 /home/user/path/to/dir
gedit     16679  user   cwd   DIR   8,1     4096     658031 /home/user/path/to/dir
lsof      20823  user   cwd   DIR   8,1     4096     658031 /home/user/path/to/dir
grep      20824  user   cwd   DIR   8,1     4096     658031 /home/user/path/to/dir …
Run Code Online (Sandbox Code Playgroud)

linux bash file

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

GNU屏幕上的Screenlog和Hardcopy之间的差异

介绍

我是新用的GNU screen,我使用它主要是因为我不想丢失我的工作,如果我的SSH连接意外关闭,还因为我想保留我的终端上打印的每个输出的日志文件(至少一些最近的曲目)

对于SSH的东西,我想Ctrl+ a d分离和/ screen -rscreen -r session_name重新连接到一些会话解决我的所有问题,现在我正在尝试了解日志记录.

我发现screenloghardcopy此链接上,基本上说:

hardcopy Ctrl + a h将当前显示内容写入hardcopy.n窗口默认目录中的文件,其中n是当前窗口的编号.如果该文件存在,则会附加或覆盖该文件(由hardcopy_append命令确定).

log Ctrl + a H开始/结束当前窗口的记录到screenlog.n窗口默认目录中的文件,其中n是当前窗口的编号.如果未给出参数,则切换日志记录状态.会话日志将附加到文件的先前内容(如果已存在).回滚历史记录的当前内容和内容不包括在会话日志中.默认是off.


观察到的行为

因此,据我所知并尝试使用它们,启用后screenlog,它会记录我写的所有内容以及该文件中的终端的所有输出(这恰好$HOME适用于我),包括那些改变颜色的字符\033[1;31mm.如果我这样做cat screenlog.0,它会崩溃,有时无限期地打印文件,但好吧,我可以用编辑器或其他会话打开它...

至于hardcopy,显然它没有跟踪命令,也没有输出的颜色,我不知道它是否只需要终端中可见的那几行或该会话中发生的一切,有人可以向我澄清这一点吗?

最后,我开screenTerminator,而不是传统的终端,即使我打开不同screen的不同的Windows会话Terminator,所有日志去screenlog.0hardcopy.0.在这种情况下screenlog,它是否会与在其他会话上输出或覆盖它的另一个进程冲突?如何创建不同的screenlog.n文件并将它们放在除以外的目录中$HOME? …

terminal logging gnu-screen

9
推荐指数
1
解决办法
2303
查看次数

如何消除☎unicode?

在网页抓取过程中以及在删除所有html标签之后,我在unicode(☎)中获得了黑色电话字符\ u260e.但与不同的是,我确实希望摆脱它.

我在Scrapy中使用以下正则表达式来消除html标记:

pattern = re.compile("<.*?>|&nbsp;|&amp;",re.DOTALL|re.M)
Run Code Online (Sandbox Code Playgroud)

然后我试图匹配\ u260e,我想我被反斜杠瘟疫抓住了.我试过这种模式失败了:

pattern = re.compile("<.*?>|&nbsp;|&amp;|\u260e",re.DOTALL|re.M)
pattern = re.compile("<.*?>|&nbsp;|&amp;|\\u260e",re.DOTALL|re.M)
pattern = re.compile("<.*?>|&nbsp;|&amp;|\\\\u260e",re.DOTALL|re.M)
Run Code Online (Sandbox Code Playgroud)

这些都不起作用,我仍然有作为输出的\ u260e.我怎么能让它消失?

python regex scrapy python-2.7

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

显示每秒运行bash脚本的已用时间

我在Linux Mint中运行一个shell脚本,调用一些进程只需几分钟.对于每个进程,我想回显这样的消息:

echo "Cleaning temporary files... X seconds."
myprocess
Run Code Online (Sandbox Code Playgroud)

其中X是当前经过的时间,我希望它每秒更改一次,但不打印新行.

有没有一个好方法呢?我只找到了最终打印总时间的方法,但没有找到运行流程时经过的时间.

linux bash shell

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

在bash脚本中遍历变量名

我需要在一堆文件,该路径被分配到的运行脚本train1train2,... train20,我想“为什么不让它自动与一个bash脚本?”。

所以我做了类似的事情:

train1=path/to/first/file
train2=path/to/second/file
...
train20=path/to/third/file

for i in {1..20}
do
    python something.py train$i
done
Run Code Online (Sandbox Code Playgroud)

无效,因为train$iecho train1的名称,但没有回显其值。

所以我尝试了类似$(train$i)or ${train$i}或or的尝试,但未成功${!train$i}。有谁知道如何捕捉这些变量的正确值?

bash

4
推荐指数
2
解决办法
4760
查看次数

IOB精度和精度之间的差异

我正在使用命名实体识别和分块器在NLTK上做一些工作。我nltk/chunk/named_entity.py为此训练了一个分类器,并得到了以下保证:

ChunkParse score:
    IOB Accuracy:  96.5%
    Precision:     78.0%
    Recall:        91.9%
    F-Measure:     84.4%
Run Code Online (Sandbox Code Playgroud)

但是在这种情况下,我不明白IOB准确度和精确度之间的确切区别是什么。实际上,我在文档(here)上找到了以下特定示例的内容:

IOB标签的准确性指示超过三分之一的单词被标记为O,即不在NP块中。但是,由于我们的标记器未找到任何块,因此其精度,召回率和f度量均为零。

那么,如果IOB精度只是O标签的数量,那么在该示例中,为什么我们没有块并且IOB精度不是100%呢?

先感谢您

python precision nlp named-entity-recognition nltk

4
推荐指数
1
解决办法
2441
查看次数

让你的蟒蛇更快一点

我正在主目录中构建python 2.6.6并尝试优化我正在使用的包的速度和内存使用情况.阅读这个页面,有人说CFLAGS='-g -O2'应该让它更快.

经过一些搜索,我读到它是你传递给编译器的某种标志,但它们没有解释为什么这会优化python速度(实际上,似乎其他值优化了其他东西,比如ruby).

我想更好地了解它,以便在我正在做的事情中获得更多性能,因为目前需要花费很多时间.有没有人可以解释这些标志意味着什么,在什么意义上它可以提高蟒蛇的速度?谢谢

python makefile

0
推荐指数
1
解决办法
121
查看次数