作为复杂的BASH脚本的一部分,我想从脚本本身在远程系统上执行命令.
现在,我运行脚本为远程系统定制文件并上传它们,然后通过ssh登录我执行一个命令.
所以满分:
我有一个词典列表(缩写).
my_list = [{ 'id':1, 'val':123 }, {'id':2, 'val':456 }, {'id':2, 'val':789 }]
Run Code Online (Sandbox Code Playgroud)
如何计算具有特定键的指定值的字典的出现次数(在本例中为' id
')?有没有办法利用计数(my_list.count('id' = 1)
?!?)
我有代码,从我的PCIe驱动程序的probe()函数调用(松散地基于这篇文章):
编辑: 根据Andreas Bombe的回复,我更改了代码使用pci_iomap()
,但我仍然遇到系统挂起
static my_pci_dev pci_dev; /* local structure */
static int pci_setup_region(struct pci_dev *dev)
{
int bar = 0;
pci_dev.physical.addr = pci_resource_start(dev, bar);
pci_dev.physical.size = pci_resource_len(dev, bar);
pci_dev.virtual.addr = pci_iomap(dev, bar, pci_dev.physical.size);
if (NULL == pci_dev.virtual.addr) {
return -ENOMEM;
} else {
pci_dev.virtual.size = pci_dev.physical.size;
}
printk(KERN_ALERT "Virtual address: %p", pci_dev.virtual.addr);
if (request_mem_region(pci_dev.physical.addr, pci_dev.physical.size, DEVICE_NAME) == NULL) {
pci_release_resources();
return -EBUSY;
} else {
pci_dev.physical.allocated = 1;
}
/* Test it out! …
Run Code Online (Sandbox Code Playgroud) 编辑#4:
我想通了,我不应该被分配attr_groups
到groups
该领域driver
中的场struct platform_driver
结构。寻找/* WRONGO: should not be assigned here. */
下面的评论。
我还没想好我应该把它分配在哪里......
由于 NULL 引用,我的平台驱动程序代码在读取 sysfs 属性时设法导致内核“OOPS”。我确定这是以下代码中的一个简单疏忽,但我看不到它:
...
static int samples_per_frame = SAMPLE_CHANNEL_COUNT;
DEVICE_INT_ATTR(samples_per_frame, S_IRUGO | S_IWUSR, samples_per_frame);
static struct attribute *attrs[] = {
&dev_attr_samples_per_frame.attr.attr, NULL,
};
static struct attribute_group attr_group = {
.attrs = attrs,
};
static const struct attribute_group *attr_groups[] = {
&attr_group, NULL,
};
static struct platform_driver platform = {
.remove = my_remove,
.probe = my_probe, …
Run Code Online (Sandbox Code Playgroud) 我正在尝试追踪内核二进制文件; 有没有办法确定Linux'uImage'二进制文件的版本(构建字符串)?
运行
strings uImage
Run Code Online (Sandbox Code Playgroud)
通过各种拖尾grep
声明导致我认为我正在处理压缩图像...
我想创建一个VBA宏,用时间格式(正则表达式)替换工作表中的所有单元格:
(1[0-2]|[1-9]):[0-5][0-9]:[0-5][0-9] [AP]M
Run Code Online (Sandbox Code Playgroud)
使用单元格地址和工作表名称.我认为这个电话也是如此:
Cells.Replace What:="1:23:45 AM",
Replacement:="=cell(""filename"")&cell(""Address"")", _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:= _
False, ReplaceFormat:=False
Run Code Online (Sandbox Code Playgroud)
但是我希望我能把这个" What:=
"论证作为一个规则,或者至少局限于时间格式.
我该怎么做?
测试数据:以CSV格式保存以下内容:
00:00,04:27,00:36,04:31,00:00
00:00,00:00,04:18,01:07,10:06
00:00,00:00,00:00,00:00,00:00
Run Code Online (Sandbox Code Playgroud)
最终宏将删除所有零次,并用作为评估公式的静态文本替换其他时间 =cell("filename")&"!"&cell("address")
作用于上述输入文件的结果(我将表格保存为XLSX):
[ A ] [ B ] [ C ] [ D ] [ E ]
[1] 'Sheet1!$B$1 'Sheet1!$C$1 'Sheet1!$D$1
[2] 'Sheet1!$C$2 'Sheet1!$D$2 'Sheet1!$E$2
[3]
Run Code Online (Sandbox Code Playgroud)
为简洁起见,我删除了 函数返回的目录和文件名=cell("filename")
,尽管上面是我真正想要的.
我需要在脚本中执行任意次数的命令以及相关的任意参数.
我已经决定脚本将从参数文件(parameter.txt
)获取其提示,其中行的形式如下:
label param1 param2
Run Code Online (Sandbox Code Playgroud)
对于每一行parameter.txt
,我将使用指定的参数调用该命令.
到目前为止,我的修修补补是沿着下面的方向移动,但它看起来很乱:
while read line; do
echo $line | sed -r 's/[^ ]+ ([^ ]+).+/\1/' &&
echo $line | sed -r 's/[^ ]+ [^ ]+ ([^ ]+)/\1/'
done < parameter.txt
Run Code Online (Sandbox Code Playgroud)
我的命令是以下形式:
mycmd -a param1 -b param2 > label
Run Code Online (Sandbox Code Playgroud)
我可以得到一些建议如何简化这个吗?
我这样做是为了一个小的嵌入式系统,其'帮助'命令供不应求(xargs
例如不可用,类似于awk
忙碌的繁忙盒实现),我正在使用版本2(我认为是2.04g) BASH.
我有一个没有的busybox系统,uniq
我想生成一个独特的重复行列表.
uniq
仿效的一个简单的例子awk
是:
sort <filename> | awk '!($0 in a){a[$0]; print}'
Run Code Online (Sandbox Code Playgroud)
我如何使用awk
(或者sed
就此而言perl
)不能完成:
sort <filename> | uniq -d
Run Code Online (Sandbox Code Playgroud) 我想在两个日期之间搜索日期排序日志文件中的一系列行.如果我在命令行,sed
将会派上用场:
sed -rn '/03.Nov.2012/,/12.Oct.2013/s/search key/search key/p' my.log
Run Code Online (Sandbox Code Playgroud)
以上内容仅显示2012年11月3日至2013年10月12日期间包含字符串" search key
"的行.
我能做到这么轻便python
吗?
我可以为上面建立一个单独的RE,但它会是噩梦.
我能想到的最好的是:
#!/usr/bin/python
start_date = "03/Nov/2012"
end_date = "12/Oct/2013"
start = False
try:
with open("my.log",'r') as log:
for line in log:
if start:
if end_date in line:
break
else:
if start_date in line:
start = True
else:
continue
if search_key in line:
print line
except IOError, e:
print '<p>Log file not found.'
Run Code Online (Sandbox Code Playgroud)
但这让我觉得不是'pythonic'.
可以假设搜索日期限制将在日志文件中找到.