比方说,我有一个非常大的文本文件(大约 10.000.000 行)。我需要grep从头开始并将结果保存到文件中。完成任务的最有效方法是什么?
我的一台机器是2GB EeePC Surf,这是一款资源非常有限的简洁上网本。现在有限,我还有22MB可用空间。
在它上面,我正在运行带有Openbox DE 的Arch Linux和许多需要的应用程序,以使其作为移动 PC 运行。
有哪些方法可以消除一些不必要的已用空间?
我只是在终端中运行一些命令,我开始想知道,运行管道命令时 Unix/Linux 是否采用快捷方式?
例如,假设我有一个一百万行的文件,其中前 10 行包含hello world. 如果您运行该命令grep "hello world" file | head,第一个命令是在找到 10 行后立即停止,还是继续先搜索整个文件?
假设一个输出文件列表的脚本:
$> bash someScript.sh
path/to/some/file
path/to/the/file/i/want/to/work/with
path/to/yet/another/file
Run Code Online (Sandbox Code Playgroud)
现在我想将第二个文件路径作为另一个命令的参数,例如vim. 有没有办法直接访问它?
我想指出,我不一定要访问第二个文件,但下次可能是第三个或第 27 个。我希望能够尽可能轻松地选择第 N 行。
现在我用鼠标选择并通过单击鼠标中键插入或使用制表符完成输入路径。现在我想知道是否有更简单的方法。
我自己的解决方案的问题是我必须以这种方式编辑我的所有脚本。如果有一个更通用的解决方案来解决这个问题会很有趣,它可以与任何类型的命令一起使用,例如find.
这个问题的动机是“反向grepping ”,关于从下往上grepping一个巨大的文件。
Run Code Online (Sandbox Code Playgroud)tac file | grep whatever或者更有效一点:
Run Code Online (Sandbox Code Playgroud)grep whatever < <(tac file)
本
< <(tac filename)应该是一样快的管道
还有许多来自其他用户的有趣评论。
我的问题:
|和 和有< <()什么区别?xargs?在我的 Ubuntu 笔记本电脑上,我只能有一个 vim 实例,启动时
vim --servername VIM
Run Code Online (Sandbox Code Playgroud)
在此之后,我可以从控制台打开文件
vim --remote-silent filename
Run Code Online (Sandbox Code Playgroud)
我对它们都使用短别名。
我也在另一台计算机上做一些计算(我称之为主力)。它安装了 Debian x64(没有 gui)。我通常使用 Windows PC 上的多个 Putty 实例访问它。实际上,workhorse 是一个虚拟机,我为资源使用付费,所以我不想让它过载太多。但是,在通常安装 vim ( apt-get install vim) 之后,我无法使用 --servername 选项运行 vim。它说
Unknown option argument: "--servername"
More info with: vim -h
Run Code Online (Sandbox Code Playgroud)
事实上,文档说应该使用+client-server选项编译 vim以将其作为“命令服务器”运行。我知道另外两个选项:apt-get install vim-gtk和apt-get install vim-gnome,但他们要求进行大量安装(分别为 136Mb 和 245Mb)。据我了解,这与图形界面的安装有某种关系。
我对任何特定的解决方法没有任何偏好。也许,我会对任何可行的解决方案感到满意。但是我确实想从控制台将文件加载到 vim,就像我从 Ubuntu 中加载文件一样,否则我确实想知道任何其他方式来有效地使用 vim 来编辑多个文件。所以问题仍然存在
如何安装轻量级 vim 并能够有效地将文件加载到一个 vim 实例中?
在某些设备中,CPU 速度是动态的,负载较多时速度会更快。
我想知道是否可以设置进程的良好级别或优先级,以便在运行时不会影响 cpu 速度的提高。
即进程正在全力运行,但仅使用空闲 cpu 周期作为低优先级。但也不会导致CPU速度的提高。
当 cpu 关闭时,进程停止。当 cpu 速度慢时,进程可能会占用一些 cpu,也许是大部分。当 cpu 很快时,因为另一个进程正在以 90% 的速度运行,进程会获得剩余 10% 的快速 cpu。然后其他进程停止,因此低优先级进程获得 100% 的 cpu,但频率控制器看不到这个低优先级进程并降低频率。
efficiency ×7
command-line ×3
bash ×2
grep ×2
arch-linux ×1
awk ×1
console ×1
cpu ×1
editors ×1
linux ×1
openbox ×1
performance ×1
pipe ×1
priority ×1
sed ×1
stdout ×1
terminal ×1
utilities ×1
vim ×1