小编Cha*_*ffy的帖子

在制表符分隔文件上读取bash,而不会删除空字段

我正在尝试在bash中读取多行制表符分隔文件.格式是预期的空字段.不幸的是,shell正在将彼此相邻的字段分隔符折叠在一起,如下所示:

# IFS=$'\t'
# read one two three <<<$'one\t\tthree'
# printf '<%s> ' "$one" "$two" "$three"; printf '\n'
<one> <three> <>
Run Code Online (Sandbox Code Playgroud)

...而不是期望的输出<one> <> <three>.

这可以解决而不诉诸单独的语言(如awk)?

bash

11
推荐指数
3
解决办法
2万
查看次数

clojure:有效地确定字符串是否以集合中的任何前缀开头

我有一组前缀/值对,并希望在此连接中找到与当前目标字符串开头的前缀相关联的任何值.(在多个前缀匹配的情况下定义行为并不重要,因为我的用例的性质应该永远不会发生).

一个天真的(工作)实现如下:

(defn prefix-match [target-str pairs]
  (some
    (fn [[k v]]
        (if (.startsWith target-str k)
            v
            false))
    pairs))
Run Code Online (Sandbox Code Playgroud)

这样:

user=> (prefix-match "foobar" {"meh" :qux, "foo" :baz})
:baz
Run Code Online (Sandbox Code Playgroud)

这按预期工作,但是O(n)具有pairs序列的长度.(快速插入pairs也是可取的,但不如快速查找那么重要).

首先想到的是使用有效的随机访问来对已排序的集合进行二等分,但我不确定Clojure中哪些数据结构最适合该任务.建议?

clojure

11
推荐指数
2
解决办法
4241
查看次数

xslt - 从xml文件中选择属性值

我有一个XML文件:

<BatchTable>
  <UUThref SocketIndex='0 - CCM'
           UUTResult='Passed'
           URL='C:\OverrideCallbacks_BatchReport[4 16 2012][4 14 18 PM].xml'
           FileName='OverrideCallbacks_BatchReport[4 16 2012][4 14 18 PM].xml'
           ECAFailCount='1'
           Version='StationPartNumber=55555StationSerialNumber=2222TPSPartNumber=1234'/>
</BatchTable>
Run Code Online (Sandbox Code Playgroud)

为了在xsl文件中选择版本,我有:

<xsl:value-of select="BatchTable/UUThref/[@Version]"/>
Run Code Online (Sandbox Code Playgroud)

这不会返回任何值.我究竟做错了什么?

xml xslt

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

来自os.mkdir的"没有这样的文件或目录"

在python项目上工作,它的作用是查看lifehacker.com的索引​​,然后查找所有带有"headline h5 hover-highlight entry-title"类的标签,然后为每个目录创建文件.但唯一的问题是,当我运行它,我得到OSError: [Errno 2] No such file or directory: "/home/root/python/The Sony Smartwatch 3: A Runner's Perspective (Updated: 1/5/2015)"

帮助会很可爱,谢谢!

继承我的代码atm:

import re
import os
import urllib2
from bs4 import BeautifulSoup
from mechanize import Browser

url = "http://lifehacker.com/"
url_open = urllib2.urlopen(url)
soup = BeautifulSoup(url_open.read())

link = soup.findAll("h1",{"class": "headline h5 hover-highlight entry-title"})
file_directory = "/home/root/python/"

for i in link:
    os.mkdir(os.path.join(file_directory, str(i.text)))
    print "Successfully made directory(s)", i.text, "!"
else:
    print "The directory", i.text, "either exists, or there was an error!"
Run Code Online (Sandbox Code Playgroud)

python beautifulsoup

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

为什么没有正确设置此shell变量

我的linux机器上有一个特定的用户,以下命令

json='[{"date":"2016"}]' && echo ${json}
Run Code Online (Sandbox Code Playgroud)

输出1而不是[{"date":"2016"}].

我的机器上的所有其他用户都能正常工作.当我将命令更改为(省略1)

json='[{"date":"206"}]' && echo ${json}
Run Code Online (Sandbox Code Playgroud)

它的工作正确.

我正在拼命寻找导致这种效果的用户的配置差异.但说实话,我不知道.

那里有任何提示吗?

linux bash

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

错误:/lib64/libc.so.6:找不到版本“GLIBC_2.28”(/var/task/cryptography/hazmat/bindings/_rust.abi3.so 需要)

我需要一个“傻瓜式”的答案来回答这个问题,我知道以前已经有人问过这个问题。

我们正在为 AWS 托管的应用程序使用无服务器框架。Runtime=python3.8 得到了一个不错的大 yml 文件,其中包含 16 个函数,其中 2 个包含用于密码学和 PyNaCl 的层,我们从这里引入 - https://github.com/keithrozario/Klayers并已成功使用了相当长一段时间。

上周,我需要更新一个不同的函数,这意味着重新测试,这意味着发现有更新版本的加密层,所以我将其更新为 Cyptography v.39。现在我有一个函数失败并出现错误,/lib64/libc.so.6: version `GLIBC_2.28' not found (required by /var/task/cryptography/hazmat/bindings/_rust.abi3.so)该函数自 07/2022 以来一直没有使用过,当时它很好。显然,距离我们从无服务器重新部署以来也已经过去了很长时间。

尝试修复:

这个问题Lambda function failed with /lib64/libc.so.6: version `GLIBC_2.18' not find包括从 Cryptography v.39 一直回到 v.3.4.7 (from 03/2021) 的建议,这似乎是个坏建议。当然,这两个版本之间的 14 次更新包括一些重要的变化。

我不知所措。我觉得我只是在原地踏步,同时无法在我尝试更新的实际功能上取得进展,因为这是一个障碍。

python aws-lambda

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

哪个clojure库界面设计最好?

我想提供消息读取器/写入器的多个实现.什么是最好的方法?

这是我目前正在思考的一些伪代码:

  • 只需拥有一组所有实现必须提供的功能,并将其留给调用者以保持正确的流

    (ns x-format)
    (read-message [stream] ...)
    (write-message [stream message] ...)
    
    Run Code Online (Sandbox Code Playgroud)
  • 返回一个带有两个闭合函数的映射,这些函数保持在流

    (ns x-format)
    (defn make-formatter [socket]
      {:read (fn [] (.read (.getInputStream socket))))
       :write (fn [message] (.write (.getOutputStream socket) message)))})
    
    Run Code Online (Sandbox Code Playgroud)
  • 别的什么?

lisp clojure

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

'io.h':没有这样的文件或目录

我尝试在python 3.6.2中安装netifaces:

pip install netifaces
Run Code Online (Sandbox Code Playgroud)

但是当在cmd中运行它时,我得到错误:

c:\ users\seyed_vahid\appdata\local\programs\python\python36\include\pyconfig.h(59):致命错误C1083:无法打开包含文件:'io.h':没有这样的文件或目录错误:command' C:\ Program Files(x86)\ Microsoft Visual Studio 14.0\VC\bin\cl.exe'失败,退出状态2如何解决?

c python

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

re.sub(".*",","(替换)","text")在Python 3.7上加倍替换

在Python 3.7(在Windows 64位上测试),使用RegEx替换字符串.*会使输入字符串重复两次!

在Python 3.7.2上:

>>> import re
>>> re.sub(".*", "(replacement)", "sample text")
'(replacement)(replacement)'
Run Code Online (Sandbox Code Playgroud)

在Python 3.6.4上:

>>> import re
>>> re.sub(".*", "(replacement)", "sample text")
'(replacement)'
Run Code Online (Sandbox Code Playgroud)

在Python 2.7.5(32位)上:

>>> import re
>>> re.sub(".*", "(replacement)", "sample text")
'(replacement)'
Run Code Online (Sandbox Code Playgroud)

怎么了?如何解决?

python python-regex

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

system()函数字符串的长度限制

字符串可以传递多长时间system()

我知道POSIX的最小值是4096,但我想知道可以使用的实际尺寸。是否在任何标头中定义了任何宏,类似于FILENAME_MAX

char cmd[SOME_MACRO];

...
system(cmd);
Run Code Online (Sandbox Code Playgroud)

c linux posix

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

标签 统计

python ×4

bash ×2

c ×2

clojure ×2

linux ×2

aws-lambda ×1

beautifulsoup ×1

lisp ×1

posix ×1

python-regex ×1

xml ×1

xslt ×1