我经常发现自己编写简单的for循环来对许多文件执行操作,例如:
for i in `find . | grep ".xml$"`; do bzip2 $i; done
Run Code Online (Sandbox Code Playgroud)
看起来有点令人沮丧的是,在我的4核机器上只有一个核心被使用..有一种简单的方法可以为我的shell脚本添加并行性吗?
编辑:为我的问题介绍更多的背景,对不起,我开始时并不是更清楚!
我经常想在合理大小的数据集(通常在100到10,000之间)上运行简单(ish)脚本,例如绘制图形,压缩或解压缩,或运行某些程序.我用来解决这些问题的脚本看起来像上面那样,但可能有不同的命令,甚至是一系列要执行的命令.
例如,刚才我正在运行:
for i in `find . | grep ".xml.bz2$"`; do find_graph -build_graph $i.graph $i; done
Run Code Online (Sandbox Code Playgroud)
所以我的问题绝不是特定于bzip的!(虽然并行bzip确实看起来很酷,但我打算将来使用它).
我写了一系列git提交,代码格式很糟糕.
在我将它们推送到github之前,我想git-clang-format在每次提交时运行,以便在我的历史记录中获得格式良好的代码.
有一些组合rebase和git-clang-format这将做到这一点?
removeon aVec删除由索引给出的单个值,并返回该值。
我想要remove一个索引列表,例如从长度为 8 的 a 中删除索引 1、2 和 5 Vec,并获取这些索引处的值作为另一个Vec. 重复调用remove(a) 成本高昂,并且 (b) 容易出错,因为在remove移动其他索引之后。
因此,如果我从 开始let mut v = vec![2,3,4,5,6,7],并删除索引[1,2,5],我最终会得到一个包含 的新向量vec![3,4,7],而v将是vec![2,5,6]。
是否可以从网页(通过我想象的REST)在Google Play服务中创建和加载云端保存?我似乎只能找到C++/Android代码保存游戏的文档.
我在许多用户群相当小的 GitHub 存储库(> 10)上工作。我有时会忘记较少使用的存储库的问题。
有没有办法(在 GitHub 中或使用外部工具)在存储库列表中查看所有开放的 PR 和问题?
我知道有一个“通知”页面,但这并不容易找到旧的、开放的问题和 PR。
我有一个程序,我生成比特流,大约80到150位左右,我想压缩,因为我要把它们变成某种ASCII字符串,以便人们可以传输它们.
有没有人知道一个好的,免费的位识别压缩器可能在这样的流上工作?我对"标准选项"的主要问题是这个流应该被视为位而不是字节,否则结构会丢失,并且它们的开销会增加任何增益.
加成:
我想压缩这些流的原因是因为用户将要切割+粘贴它们,可能使用类似base64编码的东西,因此保存一些数据是有帮助的.
下面是一个例子,对于那些希望看到它谁.我将添加格式以便于阅读:
110 110 - This is a 6x6 grid (the maximum is 7x7, so we only need 3 bits!)
000000
011110
010010
010010
011110
000000 - This is one layout grid
000000
000000
001000
000100
000000
000000 - This is the second layout grid
Run Code Online (Sandbox Code Playgroud)
现在我们列出一些作品
010 11111111 - A piece is a 3-bit colour code, then an 8-bit list of 'on / off' bits.
001 10101010 - Another bit!
001 10101010 - Another, identical bit!
Run Code Online (Sandbox Code Playgroud)
我之所以这么说它应该被视为'比特',当被视为比特流(特别是'网格中通常很多0)时,存在明显的压缩选项,当你将其视为字节流时,它会消失.
lodash提供了一种_.uniq()从数组中查找唯一元素的方法,但是使用的比较函数是严格相等===,而我想使用_.isEqual(),它满足:
_.isEqual([1, 2], [1, 2])
// true
Run Code Online (Sandbox Code Playgroud)
是否有执行方式_.uniq()有_.isEqual(),不写我自己的方法?
我想评论bash for循环参数列表的部分内容.我想写这样的东西,但我无法打破多行的循环.使用\似乎也不起作用.
for i in
arg1 arg2 # Handle library
other1 other2 # Handle binary
win1 win2 # Special windows things
do .... done;
Run Code Online (Sandbox Code Playgroud) 我想检查一下是否Vec等于[0, 1, 2, ...].我尝试了各种变体:
vec == &(0..vec.len())
Run Code Online (Sandbox Code Playgroud)
但它们似乎都不起作用.我只需要长手写一个循环吗?
我如何在 Rust 中生成随机骰子?
我知道我可以使用rand::random,但这需要我想生成一个整数类型的值。使用会rand::random<u8>() % 6引入偏差。
注意:这与大多数类似问题的方向相反!
我有一个iPhone应用程序,我想在Mac上提供一个演示.将iPhone应用程序重新编译(或重写)到Mac应用程序有多难,假设我打算保持相同的屏幕大小,而不用担心让我的应用程序看起来像"mac-like"?
是否可以在iPhone SDK中分发iPhone模拟器apple提供的应用程序副本?要求人们自己去安装它似乎是一个主要的要求.
我想在同一个类中的其他方法中使用方法来从db计算一些数据,如下所示,但我只是得到错误
Run Code Online (Sandbox Code Playgroud)[TypeError: Object #<Query> has no method 'methodMaxLct']"
exports.UserClass = function() {
this.methodMaxLct = function(lct, callback) {
var counting = Math.ceil(Math.pow(1.15, (lct - 1)) * 10) * 10;
callback(counting);
this.methodGetData = function(idu, callback) {
connection = mysql.createConnection(dbconfig);
connection.query(dataUserResources, [idu], function(err, results, fields) {
if (err) throw err;
if (results.length == 0) {
callback = 0;
} else {
for (var i in results) {
var dataU = results[i];
}
dataU.enMax = 30;
var ap = this.methodMaxLct(dataU.lct, function(answer) {
dataU.lctMax = …Run Code Online (Sandbox Code Playgroud) rust ×3
bash ×2
javascript ×2
clang ×1
clang-format ×1
comments ×1
compression ×1
formatting ×1
git ×1
github ×1
indentation ×1
iphone ×1
lodash ×1
loops ×1
macos ×1
node.js ×1
random ×1
rest ×1
syntax ×1