我在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'
吗?
如果你有时间,请解释一下发生了什么.
我在多个地方多次看过这个,但从来没有找到令人满意的解释,为什么会出现这种情况.
所以,希望有人会在这里提出.为什么我们(至少一般)不使用exec()
和eval()
?
编辑:我看到人们假设这个问题与网络服务器有关 - 它没有.我可以看到为什么传递给unsanitized的字符串exec
可能不好.在非网络应用程序中它是坏的吗?
我想为像Markdown这样的标记语言编写一个惯用的解析器.我的版本会略有不同,但我认为在Clojure中至少需要一些这样的东西,而且我想加入它.
我不想使用一堆乱七八糟的RegExes(虽然我意识到可能需要一些),而且我想要制作既强大又适用于Ciojure的东西.
我已经开始了一些不同的尝试(主要是在纸面上),但我对它们非常满意,因为我觉得我只是即兴创作.那没关系,但在过去的一两个月里,我已经用Clojure的语言进行了大量的探索,并希望至少部分地遵循巨人的路径.
我想要一些指示,建议或资源(来自O'Reilly的书很棒 - 爱我一些电子书 - 但亚马逊或其他地方也很棒).无论你能提供什么.
编辑 Brian Carper有一篇关于使用Clojure的ANTLR的有趣帖子.
还有clojure-pg和fnparse,它们是Clojure解析器生成器.fnparse甚至看起来它有一些像样的文档.
还在寻找资源等!我以为我会用自己的一些调查结果来更新这些内容.
麦卡锡的基本S函数和谓语atom
,eq
,car
,cdr
,cons
接着,他添加到他的基本符号,以便能够写他所谓的S-功能:quote
,cond
,lambda
,label
在此基础上,我们将这些称为"LISP原语"(尽管我对类型谓词的论证持开放态度numberp
)
如何defmacro
在您选择的LISP中仅使用这些原语来定义函数?(包括计划和Clojure)
Flip是一个很棒的JQuery插件,用于翻转块,但它不会保留背景,同时它会动画翻转.
例如,在我翻转之前,我有这个漂亮的背景.在翻转时,它会变得难看.
有没有办法可以div
很好地翻转这个,保持我拥有的漂亮背景,甚至可以实现比Flip更流畅的动画?
如果我需要潜入这个头脑并编写我自己的函数来翻转a div
,那也是可行的,我真的很感激那里的指针,如果这是我必须做的.
非常感谢!
我一直在使用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.
我在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)
任何帮助表示赞赏.
我正在尝试使用Context
和Reducers
通过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-dnd
的useDrop
。
Warning: React has detected a change in the order of Hooks
called by Container. This will …
Run Code Online (Sandbox Code Playgroud) 我知道otool -tv
,但我更倾向于使用英特尔语法而不是AT&Ts,主要是为了轻松地在书中跟随,而不必查看成千上万%
的和$
.
我也很感激我可以找到gdb
配置文件的任何提示.
编辑:我忘记了:我正在运行一个64位处理器,但是想知道是否有可能还可以拆解成32位汇编程序?不仅如此,但确实OSX的gdb
的list
指挥工作不同于标准GNU
版本?
非常感谢!
(另外,如果你有任何想法,我可以从C - > MIPS找到一个小的反汇编程序,玩起来会非常有趣.但不是必需的!)