我曾经通过重命名命令在 Linux 中重命名文件:
rename 's/old_pattern/new_pattern/g' *glob
Run Code Online (Sandbox Code Playgroud)
Mac OS X (Snow Leopard) 中是否有类似的东西?
我想列出所有文件,但那些以 owp 结尾的文件:因此我尝试过:
ls -l *.(^owp)
zsh: unknown sort specifier
ls -l *(^owp)
zsh: unknown sort specifier
ls -l *[^o][^w][^p] # does not work either, missing some files
Run Code Online (Sandbox Code Playgroud)
没有一个工作。我如何以正确的方式做到这一点?我的 .zshrc 已经“设置了extendedglob”。
如何在多行中搜索短语?例如,让短语“我的冰茶”,然后它可以包含在文本文件中:
as js skdfh dfh djh sf my
ice tea.
Run Code Online (Sandbox Code Playgroud)
grep 不会匹配,因为中间有换行符。我如何匹配这些?另一种多行模式是pattern1_\n_pattern2
我知道我做 ATM 的最简单的方法是只对一部分进行 grep,例如用 -A2 -B2 标志加冰,然后在该输出中再次输入例如茶。但这非常乏味。所以我对你如何解决这个问题很感兴趣。
我想处理很多文件,因为我这里有一堆内核,所以我想并行处理:
for i in *.myfiles; do do_something $i `derived_params $i` other_params; done
Run Code Online (Sandbox Code Playgroud)
我知道 Makefile解决方案,但我的命令需要 shell globbing 列表中的参数。我发现的是:
> function pwait() {
> while [ $(jobs -p | wc -l) -ge $1 ]; do
> sleep 1
> done
> }
>
Run Code Online (Sandbox Code Playgroud)
要使用它,只需将 & 放在作业和 pwait 调用之后,参数给出并行进程的数量:
> for i in *; do
> do_something $i &
> pwait 10
> done
Run Code Online (Sandbox Code Playgroud)
但这并不能很好地工作,例如,我尝试使用 for 循环转换许多文件但给我错误并留下未完成的作业。
我不敢相信这还没有完成,因为关于 zsh 邮件列表的讨论现在已经很老了。那么你知道更好的吗?
真的没有办法仅使用键盘就可以最大化或取消最大化 Mac OS X 中的窗口吗?(目前使用 10.6.3)
由于我的 IMAP 帐户上只有 500MB 的配额,而且我想在向某人发送内容时保留消息,但这些邮件所附的数据通常已过时且不再有用,因此我想到我可以删除附件并保留消息。我知道这意味着更改原始发送的邮件。
有什么我可以做的吗?
我对 Thunderbird 的解决方案特别感兴趣。
目前我不知道有什么有效的方法可以从旧邮件中复制收件人以开始新的对话。由于目前有很多方法可以做到这一点,我将阐明一些(对我来说最常见的策略)并说明为什么我觉得这些方法不是很有效。
场景 1:使用地址簿
好的,有一个地址簿应该可以为您节省一些时间,因为它可以快速向您推荐收件人,而您无需输入整个电子邮件地址。但是,即使输入十个收件人也需要很长时间,我只想复制整个组并开始编写电子邮件。还有我忘记某些收件人的危险:(
场景2:编辑为新..
然后邮件将附加到旧的对话树,但我想开始一个新的对话。
好的,这个问题针对 Unix/Linux shell!
我想要一个 shell globbing(又名通配符)模式或 GLOBIGNORE 列表,以非递归方式(maxdepth == 1)匹配当前目录中的所有文件,包括隐藏文件。到目前为止,我必须执行两个命令或使用较长的解决方法(见下文):
ls -lad *vim*
ls -lad .*vim*
Run Code Online (Sandbox Code Playgroud)
在使用 zsh 时。如果我记得的话,dash 和 bash 是一样的,对吧?
简短的解决方法:
ls -la | grep vim
find . -maxdepth 1 | grep vim
Run Code Online (Sandbox Code Playgroud)
我想了一百次:难道没有一个简单的通配解决方案吗?为什么不*匹配点字符?
我有一个带有最新图形适配器的工作站:Nvidia Gefore FX3700。由于我想将该适配器用于长时间运行的 CUDA 程序,因此不在同一设备上同时运行我的桌面图形可能非常有用。不幸的是,我无法将更多的图形板插入那台机器。所以我搜索并发现显示链接可能是一个解决方案:不将 FX3700 用于图形,而是用于 CUDA,然后将 DisplayLink 用于桌面。当我读到这篇文章时,我想:“等等!不要将普通的图形板插入计算机,而是将高性能的 CUDA 设备插入计算机,这将是非常棒的”,这将具有便携的巨大优势。
但我想这是不可能的,因为我假设没有外部接口具有能够进行高性能计算(例如类似于 PCIe)的内存带宽,对吗?
当我需要抑制某种输出时,例如
foo | grep -v bar
Run Code Online (Sandbox Code Playgroud)
但 foo 有时只给出:
bar
bar
bar...
Run Code Online (Sandbox Code Playgroud)
grep 将返回 -1。如何将退出代码 1 转换为 0?
globbing ×2
grep ×2
regex ×2
shell ×2
thunderbird ×2
zsh ×2
address-book ×1
attachments ×1
bash ×1
batch ×1
command-line ×1
cuda ×1
email ×1
exit ×1
macos ×1
newlines ×1
pipe ×1
rename ×1