小编ste*_*fan的帖子

保存整个过程以在重启后继续

我为一个相当难的数学问题开发了一个算法,这个问题可能需要几个月才能完成。由于我的资源有限,我在我的 Ubuntu 12.04 (x86) 笔记本电脑上开始了这个。现在我想安装一些更新并实际重新启动笔记本电脑(“请重新启动”消息很烦人)。

有没有办法保存整个进程,包括其分配的内存,以便在重启后继续?

以下是有关您可能需要的流程的一些信息。如果需要,请随时询问更多信息。

  • 我在终端中使用命令“ ./binary > ./somefile &”或“time ./binary > ./somefile &”调用了该进程,我真的记不清了。
  • 它正在向 std::cerr 打印一些调试信息(不经常)。
  • 它目前使用大约 600.0 kiB,即使这会增加,也不太可能迅速增加。
  • 进程以正常优先级运行
  • 内核是3.2.0-26-generic-pae,CPU是AMD,操作系统是Ubuntu 12.04 x86。
  • 它从 9 天 14 小时开始运行(太长了无法取消它;-))

process reboot

60
推荐指数
4
解决办法
3万
查看次数

一个程序在多个文件上并行执行

我有一个小脚本,它循环遍历文件夹的所有文件并执行(通常是持久的)命令。基本上是

for file in ./folder/*;
do
    ./bin/myProgram $file > ./done/$file
done
Run Code Online (Sandbox Code Playgroud)

(请忽略语法错误,这只是伪代码)。

我现在想同时运行这个脚本两次。显然,如果 ./done/$file 存在,则不需要执行。所以我把脚本改成了

for file in ./folder/*;
do
    [ -f ./done/$file ] || ./bin/myProgram $file >./done/$file
done
Run Code Online (Sandbox Code Playgroud)

所以基本上问题是:两个脚本(或通常不止一个脚本)是否可能实际上处于同一点并检查done失败且命令运行两次的文件是否存在?

这将是完美的,但我非常怀疑。这太容易了 :D 如果他们处理同一个文件可能发生,是否有可能以某种方式“同步”脚本?

scripting shell-script parallelism

8
推荐指数
1
解决办法
9156
查看次数

无法连接到 SSID 包含变音符号的 wifi 网络

我当前的 WiFi 网络(我是在 Windows -.- 的帮助下编写的)在其 SSID 中有一个变音符号:“ö”。

如果更改 SSID 不是一个选项,如何连接到这样的网络?

这不适用于 Ubuntu 12.04 或 Android 2.3.6 或 Android 4.0,所以我猜这是一个普遍的 Linux 问题。网络适​​配器是“Broadcom 4313”。

问题似乎是,网络是隐藏的。Android 和 Ubuntu 都无法正确解释手动输入的 SSID 字符串。然而,如果网络没有被隐藏,两个系统都可以看到网络。Ubuntu 正确地看到了 SSID 名称,Android 在变音符号“ö”处失败并且也错过了以下两个字符(因此,它看到的是“[某些字符] [某些其他字符]而不是“[某些字符]örc[某些其他字符]”) ]”)。

因此,导致问题的是隐藏 SSID 和特殊字符 SSID 的组合。

wifi ubuntu character-encoding broadcom android

6
推荐指数
1
解决办法
6672
查看次数

快速消除多个文件中的重复行

我有大量数据,其中每个(数据-)行都应该是唯一的。

一个文件夹中有很多文件,这已经是正确的。它大约有 15GB,分为大约 170 个文件,1000000 行。我们称该文件夹为foo

现在有第二个文件夹 ( bar) 包含更多数据:在每个文件中,没有多个条目。两个文件的交集bar不一定是空的。那里的每个文件大约有 15k 行(并且bar.

现在我正在使用

awk 'NR==FNR{a[$0]=$0;next}!a[$0]' foo/file bar/file > tmp
mv tmp bar/file
Run Code Online (Sandbox Code Playgroud)

和一个循环中的所有文件foo和循环中的所有文件barfoo如果bar/file为空,我会打破循环。我通过锁定(用于多个节点)和并行执行(在每个节点上)来并行化。但是,这仍然需要很长时间。

提高性能的可能性有哪些?中文件的理想文件大小是foo多少?当然,这取决于机器(RAM/CPU/存储),但这里有什么好的经验法则?

tl;drfoo包含唯一的数据线,bar包含可以在bar和 中多次出现的数据线foo。消除重复项,bar以便它们可以合并foo

[更新]没有空行[/更新]

performance bash awk files

6
推荐指数
1
解决办法
6628
查看次数

检查文件每一行的某些属性

我有几个(准确地说是 427 个)文本文件,每行一百万行,每行包含 31 个数字,由空格(可能是双空格)分隔。但是,可能存在一些数据损坏,并且可能存在包含垃圾的行。

我现在想检查每一行是否满足包含 31 个由空格分隔的项目的属性(我假设这些项目是数字。检查它的方法也会更好)。

我现在的方式是

while read line;
do
   if [ $(echo "$line" | sed 's/ /\n/g' | grep -v "^$" | wc -l) -ne 31 ]
   then
      echo "$file bad";
   fi
done < $file
Run Code Online (Sandbox Code Playgroud)

这将用换行符替换一行的所有空格,过滤空行,计算行数并将其与 31 进行比较。

这种方法很慢,可能有更好的方法涉及一些花哨的正则表达式。什么是更快的方法?

bash regular-expression

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