我想通过模式之间的隐式AND获得多模式匹配,即相当于在一个序列中运行几个 grep:
grep pattern1 | grep pattern2 | ...
Run Code Online (Sandbox Code Playgroud)
那么如何将其转换为类似的东西?
grep pattern1 & pattern2 & pattern3
Run Code Online (Sandbox Code Playgroud)
我想使用单个 grep,因为我正在动态构建参数,因此所有内容都必须放在一个字符串中。使用过滤器是系统特性,而不是 grep,所以它不是它的论据。
不要将此问题与:
grep "pattern1\|pattern2\|..."
Run Code Online (Sandbox Code Playgroud)
这是一个OR多模式匹配。
通常你会写:
diff file1 file2
Run Code Online (Sandbox Code Playgroud)
但是我想比较一个文件和命令的输出(在这里我使命令变得简单):
diff file1 <(cat file2 | sort)
Run Code Online (Sandbox Code Playgroud)
好的,当我在 shell 提示符下手动输入时,这项工作有效,但是当我在 shell 脚本中放入完全相同的行,然后运行该脚本时,出现错误。
所以,问题是——如何正确地做到这一点?
当然,我想避免将输出写入临时文件。
什么是“标准”——我应该将应用程序(不仅仅是二进制文件,而是整个发行版)放到 /usr/local 或 /usr/local/share 中。
例如 scala 或 weka —— 它包含示例、二进制文件、库等。所以它会
/usr/local/scala-2.9.1
Run Code Online (Sandbox Code Playgroud)
或者
/usr/local/share/scala-2.9.1
Run Code Online (Sandbox Code Playgroud)
由于我是唯一的管理员,这对我来说没什么大不了的,但我更喜欢使用广泛使用的东西,而不是我自己的习惯。
重要提示:我不是在询问您应该将应用程序拆分为 /usr/local/bin、/usr/local/lib 等的情况。相反,我问的是您必须为整个应用程序保留一个主目录的情况。
这是最低要求:
很高兴有:
如果您知道一个合格的发行版,您能否还提到您知道它支持的所有额外功能。
我正在寻找至少前 10 个 Linux 发行版的硬数据,或者(更好)保存此类数据并(可能)不时更新它的网页地址(在所有存储库都可以公开查看之后)。
标准是——本机(SUSE 为 rpm,Ubuntu 为 deb 等)包程序、库和存储库中可用(不在安装 CD/DVD 上)的数量。例如,库计数为 1,而不是仅仅因为它有 10 个包(ARM、Intel、SPARC 等)而计为 10。
先感谢您。
如果你有兴趣,我为什么要问这个。嗯,搜索repo有点累了,发现没有包,下载zip/gz/bz2,看看怎么做rpm(如果是其他软件的顶层软件,比如Rattle,就是不是微不足道的任务),最后安装它。因此,我最好考虑其他在此类排名中排名更高的发行版。
在逐步构建软件包时,好的旧 rpm 只是保留了 BuildRoot 的内容——这对我来说非常有用,因为如果某些软件难以创建,如果一切正常,我可以检查 BuildRoot。
现在,随着所有“改进”的 rpm - BuildRoot 的内容被自动删除,所以我不能真正深入研究它(安装步骤不是那么长)。
我知道的一个技巧是在安装阶段结束时向 rpm 规范添加某种睡眠。但这是丑陋的。
所以 -问题- 如何以良好的方式保留 BuildRoot 的内容 - 换句话说,如何永久禁用自动删除?
wget具有-np禁止从任何父目录获取文件的选项。我需要一些类似但更灵活的东西。考虑:
www.foo.com/bar1/bar2/bar3/index.html
Run Code Online (Sandbox Code Playgroud)
我想得到一切,但不是“更高”(在树层次结构中)比bar2(!)。所以bar2也应该被 fetch 但不是bar1.
有没有办法让 wget 更有选择性?
背景:我正在尝试镜像一个具有类似逻辑结构的网站——起点,然后向上,然后向下。如果还有比wget更适合这种布局的工具,也请告诉我。
或者不是指定可能的深度,可能是“没有父母,除非他们匹配这个或那个 URL”。
服务器上有一些结构,对吧?你可以把它想象成一棵树。所以通常使用“--no-parent”,你从某个点 A 开始,然后只向下走。
我的愿望,是能够上升——通过说允许上升 X 个节点,或者(100% 等效)允许上升到 B 节点(距离 BA=X)。
在所有情况下,下降的规则保持由用户定义(例如 - 仅下降 Y 级)。
如何储存?实际上这不是问题——wget默认情况下重新创建服务器结构,这里没有什么可害怕的,或者不需要修复任何东西。所以,用两个词——像往常一样。
下面的目录结构——让我们假设在每个目录中只有一个文件,在 R 中——R.html 等等。这当然是简化的,因为您可以拥有不止一页。
R
/ \
B G
/ \
C F
/ \
A D
/
E
Run Code Online (Sandbox Code Playgroud)
A (A.html) 是我的起点,X = 2(所以 B 是我想要获取的最顶级节点)。在此特定示例中,这意味着获取除 R.html 和 G.html 之外的所有页面。A.html 被称为“起点”,因为我必须从它开始,而不是从 B 开始。 …
我想将 Alt 分配给 CapsLock 键,将 Meta 分配给 Alt 键。但是这样一来,Alt 键就不再被识别为 Alt,CapsLock 键也不再被识别为 CapsLock。
openSUSE 11.4
openSUSE 11.1 -- 因为我是我电脑的唯一用户,所以我“简单地”编辑了 /usr/share/X11/xkb/keycodes/xfree86 文件,它没有问题。键在最低级别连接到它们的符号。
xkb
我创建了一个波兰布局 (pl_ext) 的变体,它(用于测试)由以下条目组成:
key <CAPS> { [ Alt_L ] };
modifier_map Mod1 { Alt_L, Alt_R };
Run Code Online (Sandbox Code Playgroud)
然而,这根本没有任何作用,xev 中的 CapsLock 键被识别(符号)为 Alt_L,但是当我按下 CapsLock 键时,它的行为类似于 CapsLock(例如,假设您在菜单中有文件,Alt+F 应该打开此菜单,它不会)。
问题:如何定义布局文件将 CapsLock-key 设置为 Alt,Alt-key 设置为 Meta?
编辑:这里成功了一半!现在我有这样的条目:
key <CAPS> { [ Alt_L ] };
modifier_map Mod1 { <CAPS> }; // this is a difference
Run Code Online (Sandbox Code Playgroud)
这可以按需要工作。这不会:
key <LALT> { …Run Code Online (Sandbox Code Playgroud)通常,当您安装 KDE 应用程序的常规包时,其图标会显示在 KDE 菜单中。
现在,我正在为 *.zip 文件中的应用程序制作包,我可以安装它,运行它,但它没有显示在 KDE 菜单中。那么如何注册呢?
openSUSE 11.4、KDE3.5.10 (!)、应用程序:IntelliJ IDEA。
以前我使用 openSUSE 11.4 并且我有一个旧的手动挂载。尽管如此,我复制了所有配置文件(我认为)我注意到/etc/fstab设备未知是自动挂载的(知道我定义为noauto)。但是因为这与 openSUSE 13.2 发行版有很大不同,所以我并不感到惊讶。
So how to do this in openSUSE 13.2? I would like to mount the device manually by mount, and unmount also manually by umount. No other way, no smart timeout on inactivity or anything like that.
I would like to disable that feature at system level, nothing per desktop (for the record I use KDE 3.5, not a joke), so I could be 100% sure this problem …