我买了一台新的 Macbook Pro。像 linux 一样,它有一个 bash shell。但是,我在那里没有找到 gcc 或 g++。它是否在某处,或者是否有某种包管理器可以让我轻松添加它?
我有两个文件。一个巨大的(200.000+ 行)称为“db”,一个巨大的(15.000+ 行)称为“索引”。
从“索引”中过滤掉包含任何索引(行上的任何位置)的“db”中的行的最快方法是什么?
我能想到的解决方案是
for index in $(cat indices); do
grep $index db >> selection
done;
Run Code Online (Sandbox Code Playgroud)
但这需要很长时间。
在 bash 和 linux 中有更快的方法吗?
可能重复:
在 Mac OS X 上查找重复文件
大家好
我正在尝试整理一个文件夹中的重复文件夹,该文件夹在 Mac OS X 系统上再次具有大量子文件夹。我想要一个包含重复文件的绝对路径的列表。我试图解决 Bash shell 中的问题,但如果有一个 GUI 应用程序可以做到这一点,我会更喜欢它。
我有一个简单的命令,几乎可以完成我想要的操作。以下将定位所有后缀为“_compressed.swf”的文件,并将每个文件复制到其同一个目录中,并附加“.bak2”:
find '../content' -name '*_compressed.swf' -print0 | xargs -0 -I {} cp {} {}.bak2
结果
输入:/content/somefile_compressed.swf
输出:/content/somefile_compressed.swf.bak2
但是,我需要将 '_compressed.swf' 替换为 '_content.swf' 我想使用 find,而不是 cp 上的递归标志以保持一致性。
目标
输入:/content/somefile_compressed.swf
输出:/content/somefile_content.swf
在 Windows 中获得成熟的 Unix/Linux bash 的最佳方法是什么?
我不是指虚拟机,而是指安装了 NTFS 驱动器的终端。
这样我就可以在 Windows 上使用 Unix/Linux 的强大功能。
我希望能够从终端做的事情:
这真的感觉像是一个单独的操作系统,我意识到 VM 可能是最好的选择。但我想应该可以有一个更轻的安装。
注意:我不能只使用 Linux,因为我仍然需要在 Windows 上进行开发。另外,我是 Linux 新手 - 如果问一些明显/愚蠢的问题,我才刚刚开始使用它,所以很抱歉。
我正在尝试通过 Cygwin 来掌握 Bash 脚本。我的脚本非常简单。
我将目录更改为 C 驱动器的根目录,然后打印新位置。
#!/usr/bin/bash
cd /cygdrive/c
pwd
Run Code Online (Sandbox Code Playgroud)
保存在chdir.sh我的主目录中的文件中。然后我./chdir.sh从 bash 提示符调用。这导致错误
: No such file or directorygdrive/c
/cygdrive/c/Documents and Settings/rcotton
Run Code Online (Sandbox Code Playgroud)
我肯定有一个 C 驱动器,cd /cygdrive/c当我直接从 bash 提示符调用它时,该命令有效。
我意识到这个问题可能非常简单;请你能告诉我我做错了什么。
我想在 Mac 中使用快捷命令,因为我经常调用终端中有点长的命令。我怎样才能做到这一点?
我想知道是否有办法跟踪在 Linux 中运行命令的位置。
例如,如果我调用一个脚本,有没有办法跟踪它是从哪里调用的,比如从程序或另一个 bash 脚本启动。
大多数针对 Mac 的建议都是假设您使用 Bash shell 编写的。如果我切换到 zsh,我与系统上当前的 Bash 脚本有多不兼容,以及 SU 上的人给我的建议?
#!/bin/sh我的脚本开头的那行有帮助吗?
编辑:与问题无关的是我为什么要这样做。更好的选项卡完成。我只是尝试了 zsh按照此处的建议放入登录脚本,我完全被震撼了。
我想写一个循环('for'),它会做一些动作 'X' 次。但不是一个接一个地顺序执行动作,我希望它们同时执行(同时并行)。如何做到这一点?脚本或单衬都很好。
仅示例:
for i in 1 2 3 4 5; do dd if=/dev/zero of=/tmp/disk$i bs=10M count=10; done
Run Code Online (Sandbox Code Playgroud)