小编Isa*_*aac的帖子

从Grep RegEx捕获组

我在sh(Mac OSX 10.6)中有这个小脚本来查看一系列文件.谷歌此时已停止提供帮助:

files="*.jpg"
for f in $files
    do
        echo $f | grep -oEi '[0-9]+_([a-z]+)_[0-9a-z]*'
        name=$?
        echo $name
    done
Run Code Online (Sandbox Code Playgroud)

到目前为止(显然,对于你的shell大师)$name只有0,1或2,具体取决于是否grep发现文件名与提供的内容匹配.我想要的是捕获parens中的内容([a-z]+)并将其存储到变量中.

如果可能的话,我只想使用它grep.如果没有,请不要使用Python或Perl等,sed或类似的东西 - 我是shell的新手,并希望从*nix纯粹的角度来攻击它.

另外,作为一个超酷的bonu,我很好奇如何在shell中连接字符串?我捕获的组是$ name中存储的字符串"somename",我想在其末尾添加字符串".jpg",是cat $name '.jpg'吗?

如果你有时间,请解释一下发生了什么.

bash shell grep

355
推荐指数
7
解决办法
37万
查看次数

为什么要避免使用exec()和eval()?

我在多个地方多次看过这个,但从来没有找到令人满意的解释,为什么会出现这种情况.

所以,希望有人会在这里提出.为什么我们(至少一般)不使用exec()eval()

编辑:我看到人们假设这个问题与网络服务器有关 - 它没有.我可以看到为什么传递给unsanitized的字符串exec可能不好.在非网络应用程序中它是坏的吗?

python

26
推荐指数
8
解决办法
9373
查看次数

编写解析器(用于标记语言):理论与实践

我想为像Markdown这样的标记语言编写一个惯用的解析器.我的版本会略有不同,但我认为在Clojure中至少需要一些这样的东西,而且我想加入它.

我不想使用一堆乱七八糟的RegExes(虽然我意识到可能需要一些),而且我想要制作既强大又适用于Ciojure的东西.

我已经开始了一些不同的尝试(主要是在纸面上),但我对它们非常满意,因为我觉得我只是即兴创作.那没关系,但在过去的一两个月里,我已经用Clojure的语言进行了大量的探索,并希望至少部分地遵循巨人的路径.

我想要一些指示,建议或资源(来自O'Reilly的书很棒 - 爱我一些电子书 - 但亚马逊或其他地方也很棒).无论你能提供什么.

编辑 Brian Carper有一篇关于使用Clojure的ANTLR的有趣帖子.

还有clojure-pgfnparse,它们是Clojure解析器生成器.fnparse甚至看起来它有一些像样的文档.

还在寻找资源等!我以为我会用自己的一些调查结果来更新这些内容.

parsing clojure

14
推荐指数
2
解决办法
4389
查看次数

仅使用LISP原语定义defmacro函数?

麦卡锡的基本S函数和谓语atom,eq,car,cdr,cons

接着,他添加到他的基本符号,以便能够写他所谓的S-功能:quote,cond,lambda,label

在此基础上,我们将这些称为"LISP原语"(尽管我对类型谓词的论证持开放态度numberp)

如何defmacro在您选择的LISP中仅使用这些原语来定义函数?(包括计划和Clojure)

lisp macros primitive scheme clojure

11
推荐指数
1
解决办法
1355
查看次数

使用Javascript翻转div

Flip是一个很棒的JQuery插件,用于翻转块,但它不会保留背景,同时它会动画翻转.

例如,在我翻转之前,我有这个漂亮的背景.在翻转时,它会变得难看.

有没有办法可以div很好地翻转这个,保持我拥有的漂亮背景,甚至可以实现比Flip更流畅的动画?

如果我需要潜入这个头脑并编写我自己的函数来翻转a div,那也是可行的,我真的很感激那里的指针,如果这是我必须做的.

非常感谢!

javascript jquery

10
推荐指数
1
解决办法
3140
查看次数

处理Java/Clojure中的大型数据集:littleBig数据

我一直使用Clojure 开发一个图形/数据处理应用程序(你可以看到这里的截图)(虽然,通常情况下,感觉我使用的是比Clojure更多的Java),并且已经开始用更大的数据集测试我的应用程序.我有大约100k点没有问题,但是当我开始变得更高时,我遇到了堆空间问题.

现在,从理论上讲,大约半个GB应该足以容纳大约7000万双打.当然,我做了许多需要一些开销的事情,事实上我可能同时在内存中保存了2-3份数据,但我还没有进行太多优化,而500k左右仍是订单比我应该能够加载的量级小.


我知道Java对堆的大小有人为限制(可以更改),我理解这些可以部分地用JVM启动时可以指定的选项进行更改.这引出了我的第一个问题:

  • 如果我在启动时使用JVM启用的Swank-Clojure(通过Leiningen),我可以更改允许的最大堆空间吗?

  • 如果我将此应用程序(我计划)打包为Uberjar,我是否能够确保我的JVM具有某种最小堆空间?

但我不满足于只依靠JVM的堆来为我的应用程序提供动力.我不知道我最终可能使用的数据的大小,但它可能达到数百万点,也许堆不能适应.因此,我很有兴趣找到只是打包数据的替代方案.以下是我的一些想法,以及有关它们的问题:

  • 是否有可能一次仅读取大(文本)文件的一部分,因此我可以以"块"(例如,一次n一行)导入和处理数据?如果是这样,怎么样?

  • 是否有一些更快的方式来访问我正在读取的文件(可能很快,取决于实现),而不是简单地一次读取它?如果你做过类似的事情,我想我在这里要求提供过去适合你的任何提示/黑客.

  • 我可以从文件中"采样"; 例如,只读取每一z行,有效地下采样我的数据?

现在我计划,如果有上面的答案(我将继续搜索!),或者提供的见解导致等效的解决方案,一次读入一大块数据,将其绘制到时间线(请参见屏幕截图) - 时间线为绿色),并允许用户与该位进行交互,直到她点击next chunk(或某事),然后我保存对文件所做的更改并加载下一个"数据块"的数据并显示它.

或者,我会显示所有数据的整个时间轴(下采样,因此我可以加载它),但只允许在主窗口中一次访问它的一个"块"(在绿色上方查看的部分)时间轴,如时间轴中的视口矩形所示.


最重要的是,虽然,有没有更好的办法?请注意,我无法对主窗口的数据进行下采样,因为我需要能够处理它并让用户与其进行交互(例如,单击一个点或接近一个点以向该点添加"标记":该标记被绘制为关于那一点的垂直规则).

我很感激任何见解,答案,建议或更正!我也愿意以你想要的任何方式阐述我的问题.

希望这至少部分是开源的; 我想要一个简单易用但快速的方法来在Clojure世界中制作大量数据的xy图.


编辑下采样只有在绘图时才有可能,而不是总是如此,具体取决于绘制的部分.我需要访问所有数据来执行分析.(只是清理它!)虽然我一定要考虑下采样,但我认为这至少不会解决我的内存问题,因为我所做的只是在绘制BufferedImage.

java memory performance clojure

10
推荐指数
1
解决办法
3477
查看次数

关于lisp的在线教程

有关lisp的任何在线教程,可以在短时间内教授该语言的基础知识(循环,条件等)吗?

lisp common-lisp

10
推荐指数
1
解决办法
3787
查看次数

我的LISP如何作为未绑定的变量?

我在LISP中定义了一个函数,并且它正确定义.但每当我尝试调用它时,我都会收到错误消息"变量FACTORIAL未绑定".

我在OS X和Windows 7上,在LispWorks和Allegro上尝试了这个.功能是 -

(defun factorial (x)
   (if (= 1 x) 1
       (* x factorial (- 1 x))))
Run Code Online (Sandbox Code Playgroud)

任何帮助表示赞赏.

lisp common-lisp

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

“反应已检测到挂钩的顺序发生了变化”,但是似乎按顺序调用了挂钩

我正在尝试使用ContextReducers通过React的钩子,并且遇到钩子顺序不恒定的问题。我的理解是,只要顺序useHook(…)保持不变,就可以在任何类型的控制流中调用返回的状态/更新函数/缩减器。否则,我将在FunctionComponent的最开始调用钩子。

我是Days在循环生成吗?还是缺少其他东西?

Warning: React has detected a change in the order of Hooks
called by Container. This will lead to bugs and errors if not fixed. For
more information, read the Rules of Hooks:
https://reactjs.org/docs/hooks-rules.html

   Previous render            Next render
   ------------------------------------------------------
1. useContext                 useContext
2. undefined                  useRef
   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Run Code Online (Sandbox Code Playgroud)

的完整版本Container如下。从摘录Day是下方,并且具有从一个裁判react-dnduseDrop

Warning: React has detected a change in the order of Hooks
called by Container. This will …
Run Code Online (Sandbox Code Playgroud)

javascript typescript reactjs

10
推荐指数
3
解决办法
2192
查看次数

在OSX10.6上反汇编到x86_64(但使用_Intel_语法)

我知道otool -tv,但我更倾向于使用英特尔语法而不是AT&Ts,主要是为了轻松地在书中跟随,而不必查看成千上万%的和$.

我也很感激我可以找到gdb配置文件的任何提示.

编辑:我忘记了:我正在运行一个64位处理器,但是想知道是否有可能还可以拆解成32位汇编程序?不仅如此,但确实OSX的gdblist指挥工作不同于标准GNU版本?

非常感谢!

(另外,如果你有任何想法,我可以从C - > MIPS找到一个小的反汇编程序,玩起来会非常有趣.但不是必需的!)

macos x86 assembly x86-64

9
推荐指数
2
解决办法
6662
查看次数