我发现在bash脚本中创建长流水线非常强大,但我看到的主要缺点是似乎没有办法插入注释.
例如,是否有一种向此脚本添加注释的好方法?
#find all my VNC sessions
ls -t $HOME/.vnc/*.pid \
| xargs -n1 \
| sed 's|\.pid$||; s|^.*\.vnc/||g' \
| xargs -P50 --replace vncconfig -display {} -get desktop \
| grep "($USER)" \
| awk '{print $1}' \
| xargs -n1 xdpyinfo -display \
| egrep "^name|dimensions|depths"
Run Code Online (Sandbox Code Playgroud) 我想自动创建其中一个数据透视表:
https://drive.googleblog.com/2011/05/summarize-your-data-with-pivot-tables.html
给定一些数据和参数,该脚本将以非交互方式创建一个新的Google电子表格,其中包含数据透视表和图表.
这可能吗?
我有一个从二进制文件读取的四字节字符串,它应该表示一个整数.我如何设置整数?
例:
my $s = '\xa8e2~';
my $i = stoi($s);
printf "%X", $i; #gives "0x7e3265a8"
Run Code Online (Sandbox Code Playgroud)
C中的解决方案很简单:
fread(&i,4,1,fp);
Run Code Online (Sandbox Code Playgroud) 我想用一个具有相同名称和调用约定的proc替换"proc N"的定义,但是需要一些额外的错误检测代码.
在python中,我可以按照下面的方式执行我想要的操作,但是我没有掌握命名空间和函数句柄如何在tcl中工作.
__orig_N = N
def N(arg1, arg2):
if arg1 != 'GOOD VALUE':
exit('arg1 is bad')
return __orig_N(arg1, arg2)
Run Code Online (Sandbox Code Playgroud) 如何使用xpath选择全局最后一个文本节点?我试过这个,但它给了我文档每个上下文中的最后一个节点.
lxml.html.fromstring('1<a>2<b>3</b>4<c>5</c>6</a>').xpath('//text()[last()]')
['1', '3', '5', '6']
Run Code Online (Sandbox Code Playgroud)
我可以做到这一点,但它在时间和空间上都是低效的,特别是当文档变大时.
lxml.html.fromstring('1<a>2<b>3</b>4<c>5</c>6</a>').xpath('//text()[last()]')[-1]
'6'
Run Code Online (Sandbox Code Playgroud)
我试图使用-1的索引,但这给了我一个空列表.我试图使用一些反向轴(这样我可以用1索引),但我无法让它们在全局上下文中工作.
我想创建一个像下面这样的装饰器,但我似乎无法想到一个有效的实现.我开始认为这是不可能的,但我想我先问你们.
我意识到在Python中有各种其他方法可以创建静态变量,但我发现这些方法很难看.如果可能的话,我真的想使用下面的语法.
@static(x=0)
def f():
x += 1
print x
f() #prints 1
f() #prints 2
Run Code Online (Sandbox Code Playgroud)
我不在乎执行static
是长期还是黑客,只要它像上面那样工作.
我创建了这个版本,但它只允许<function>.<varname>
使用更长的函数和变量名来快速繁琐的语法.
def static(**assignments):
def decorate(func):
for var, val in assignments.items():
setattr(func, var, val)
return func
return decorate
Run Code Online (Sandbox Code Playgroud)
我想到的各种事情,但无法开展工作的是:
self
透明地存储静态变量.有人可以解释为什么这段代码没有按预期工作?我希望它只匹配第一个字符,它与文字字符匹配,但通配符(.)和字符类表现奇怪:
我使用-o只是为了证明事物是如何匹配的,它根本不会改变匹配的东西.
$ echo foo | grep -o '^.'
f
o
o
Run Code Online (Sandbox Code Playgroud)
一些更意外的行为:
$ echo foobarbazquux | grep -o '^[foarqux]'
f
o
o
$ echo foobarbazquux | grep -o '^.[^u]'
fo
ob
ar
ba
zq
Run Code Online (Sandbox Code Playgroud)
实际上,行首匹配器(^)在这些情况下的行为并不像预期的那样.有没有办法让它表现得更正常?
我希望能够在我的git-graph中找到上游不存在的最长路径.该路径的一端显然是HEAD,所以这很容易.另一端是我最早的提交,它不存在于上游.我不知道怎么找到这个.
图
[otherguy] H--I--J
/ \
[master] A--B--C--M1--D--E--M2--F--G
\ \ \
[mine] H---I--M3---J---K---M4--M--HEAD
Run Code Online (Sandbox Code Playgroud)
我想要一个命令,它会指向H(或B),给定HEAD
和master
.请注意,一个简单的git merge-base master HEAD
给我F.
我们使用Selenium WebDriver来测试具有双后预防行为的表单.有一些简单的javascript可以在点击时禁用按钮,这样用户就不会意外地发布两次相同的内容.
我们如何测试?
问题是button.click()
直到下一页加载的块,此时我们当然无法断言前一页上的按钮.即使我们以某种方式得到.click()
非阻挡,也存在固有的竞争条件; 如果浏览器/ javascript比测试系统快得多,它将能够在测试可以断言关于按钮的任何内容之前卸载页面.
没有javascript注入黑客的解决方案的奖励积分.
我想找到一个包含特定名称的文件,但在direcotories搜索上述当前的而不是下面.
我想要类似的东西:(功能除外)
$ cd /some/long/path/to/my/dir/
$ find -maxdepth -1 -name 'foo'
/some/long/path/to/foo
/some/foo
Run Code Online (Sandbox Code Playgroud)
Shell脚本或单行首选.
在回答几个问题时,上述示例与实际查找之间的区别在于搜索从当前目录向上进行(并且-maxdepth不采用否定参数).
bash ×2
decorator ×2
posix ×2
binary ×1
branch ×1
comments ×1
find ×1
git ×1
git-branch ×1
google-api ×1
google-docs ×1
grep ×1
libxml2 ×1
lxml ×1
namespaces ×1
perl ×1
pipeline ×1
pivot-table ×1
proc-object ×1
python ×1
regex ×1
selenium ×1
sh ×1
shell ×1
static ×1
string ×1
tcl ×1
unix ×1
variables ×1
webdriver ×1
wrapper ×1
xpath ×1
xslt ×1