我正在开发一个将被其他人使用的shell脚本,并且可能会摄取可疑字符串.它基于awk,所以作为一个基本的弹性测量,我想让awk输出以null结尾的字符串 - 从awk接收数据的命令可以因此避免从包含空格或不经常找到的字符串中产生一定程度的破坏 - 英文字符.
不幸的是,从基本awk文档中,我没有得到如何告诉awk打印由ASCII null而不是换行符终止的字符串.我怎么能告诉awk我想要以空字符结尾的字符串?
可能使用的awk版本:
[user@server1]$ awk --version
awk version 20070501
[user@server2]$ awk -W version
mawk 1.3.3 Nov 1996, Copyright (C) Michael D. Brennan
[user@server3]$ awk -W version
GNU Awk 3.1.7
Run Code Online (Sandbox Code Playgroud)
几乎是整个系列的awk版本.如果我们必须在一个版本上进行整合,那么它可能是GNU Awk,但欢迎所有版本的答案,因为我可能必须让它适用于所有这些问题.哦,遗留脚本.
当我有一个像"Test.m"这样的字符串时,如何从elisp中获取子字符串"Test"?我正在尝试在我的.emacs文件中使用它.
我正在创建一个游戏社区网站,我的目标是尽快向公众发布.目前,我正在研究密码和登录.我之前只使用过MD5,但我读过有关密码安全的内容,并且听说盐腌是目前的方法.
这是我的计划:每个用户都有自己独特的12个随机字符(#/¤&etc),存储在users表中.在注册时对盐进行哈希处理(使用SHA-256)和密码,并在登录时重新进行哈希处理.
这听起来怎么样?我可以改进什么吗?我应该选择SHA-512和更长的盐,还是这个呢?
我当前使用emacs的模式导致我打开了几个shell模式缓冲区,每个缓冲区运行一个ssh会话.我遇到了这个问题 - 当我尝试在远程会话中选项卡完成文件名和其他内容时,shell会尝试使用本地计算机上的完成而不是远程计算机上的完成.
例如,如果文件~/foobar存在于本地计算机上~/frob并存在于远程计算机上,则键入~/f并按下选项卡将导致~/foobar而不是正确完成.如果我在emacs之外使用ssh并尝试相同的东西,我会得到正确的完成~/frob.
如何完成标签完成以完成正常ssh会话中的方式?
后来注意:M-x cd RET /ssh:host.example.com:/path/to/me似乎也推动它能够优雅地处理标签完成.
我已经开发了一个适用于iPhone的网络应用程序,我将它添加到书签并添加到我的iPhone主屏幕.我注意到它有一个问题:它按预期工作,直到我导航到应用程序中具有查询字符串和参数的页面 - 例如,www.mywebapp.com/page02.html?param1=value¶m2=value2.当我转到带有这样一个URL的页面时,iOS会将我从Safari的嵌入式版本切换到主要的Safari应用程序 - 它将我带出我的应用程序.我不知道为什么会这样.
是什么导致了这一点,我该怎么办呢?
我正在尝试从Magento安装中的产品页面中删除标记功能.
以下是我尝试执行此操作的步骤:
但是,这并没有像我预期的那样发挥作用.标记功能似乎不再有效,但"标签"标签和添加标签的表单仍显示在产品页面上.
如何完全删除标记功能,包括显示的标记和添加标记表单?
我正在尝试使用emacs的customize-group软件包来调整我的设置的某些部分,而且我受到了阻碍.在使用自定义进行更改后,我在.emacs文件中看到类似这样的内容:
'(tramp-backup-directory-alist (quote (("\\\\`.*\\\\'" . "~/.emacs.d/autobackups"))))
Run Code Online (Sandbox Code Playgroud)
这是将以下内容放入自定义文本字段的结果:
Regexp matching filename: \\`.*\\'
Run Code Online (Sandbox Code Playgroud)
这是一个有代表性的例子:我实际上试图改变一些想要正则表达式的东西,它们都显示出同样的问题.有多少层报价,真的吗?我似乎无法找到神奇的反斜杠数来获得我所要求的gosh-dang事情,即使对于最简单的正则表达式也是如此.*.现在,给定的定制产生 - 没有.它没有改变emacs的默认行为.
更好的是,这在哪里记录了?谷歌有点困难,但我在那里以及官方文档和Emacs维基中都尝试过很多东西.在自定义模式下,需要在正常表达式中生成多少副本反斜杠的权威来源实际上是什么工作 - 或者至少是因为某种警告失败而不是默默地失败?
编辑:正如经常在愤怒中提出的问题一样,我问的是错误的问题.幸运的是,下面的答案让我得到了我需要的问题的答案,这是关于引用规则的.我将尝试写下我在这里学到的内容,因为我发现文档和Googleable资源令人抓狂.所以这里是我通过反复试验找到的引用规则,我希望他们帮助别人,激励纠正,或两者兼而有之.
当emacs自定义模式缓冲区要求您提供"正则表达式匹配文件名"时,正如emacs经常出现的那样,它既简洁又特殊(创作者的个性多久被赋予创作!).一方面,这意味着一个正则表达式将与搜索匹配项的文件的整个路径进行比较,而不仅仅是文件本身的名称,正如您可能从术语"文件名"中所假设的那样.例如,这与emacs buffer-file-name函数中使用的"文件名"相同.
此外,虽然如果你放入foo字段,你会看到"foo"(用双引号)写入实际文件,这是不够引用而不是正确的引用.你需要引用你的正则表达式,引用样式,据我所知,只有emacs使用:``backtick-foo-single-quote'`scheme.然后你需要逃避它,制作它\`backslash-backtick-foo-backslash-single-quote\'(如果你认为在Markdown中输入是一件令人头痛的话,那么在emacs中更是如此).
除此之外,emacs似乎有一个规则,即正则.表达式特殊字符/与文件名的开头不匹配,因此,正如我上面发生的那样,经典.*模式似乎没有任何匹配:匹配"所有文件" ,你实际上需要正则表达式/.*,然后你填写自定义模式的报价格式来生成\`/.*\',之后自定义绘制另一层转义到它并将其写入自定义文件.
我的一个努力的最终结果 - 一个设置,使#autosave#文件不会使你正在工作的目录嘎嘎作响,而是所有人都住在一个地方:
(custom-set variables
'(auto-save-file-name-transforms (quote (
("\\`/[^/]*:\\([^/]*/\\)*\\([^/]*\\)\\'" "~/.emacs.d/autobackups/\\2" t)
("\\`/.*/\\(.*?\\)\\'" "~/.emacs.d/autobackups/\\1" t)
))))
Run Code Online (Sandbox Code Playgroud)
elisp的反斜杠对你的理智的威胁远大于括号.
编辑2:我再次出错的时候了.我终于找到了相关的文档(当然是通过阅读另一个Stack Overflow问题!):Regexp Backslash Constructs.对我来说困惑的关键点:反引号和单引号在这种情况下没有引用:它们相当于perl …
我正在尝试创建一个基于ExtJS的Web应用程序,我正在处理应用程序的文件上传区域.
我希望用户能够通过复制和粘贴文件来上传文件 - 不仅仅是复制和粘贴文件的内容,而是文件本身.例如,在Windows中,您可以在选择文件时从"编辑"菜单中选择"复制"或"剪切",然后选择"粘贴"以后复制或移动文件 - 我希望用户能够上传文件通过在浏览器中选择粘贴,在粘贴步骤中访问我的应用程序.
我已经尝试过HTML5的拖放式API,但我们不想使用它 - 我们希望用户能够复制/剪切和粘贴文件以上传文件(只要它们小于20)兆字节).如果用户将路径复制到其文件并将其直接粘贴到页面,告诉我们在哪里找到该文件,那也可以.
有谁能建议这样做的方法?
我试图ace.js在我的代码中为编辑器创建一个Range对象,但它不起作用.它以一种我无法弄清楚的方式失败.在Ace文档中,此构造函数是:
new Range(Number startRow,
Number startColumn,
Number endRow,
Number endColumn)
Run Code Online (Sandbox Code Playgroud)
但是当我在我的代码中尝试这个时:
new Range(0, 0, 0, 1)
Run Code Online (Sandbox Code Playgroud)
它引发了一个Uncaught TypeError: Illegal constructor错误.是什么导致了这种行为,为什么它不符合文档?