or例如,在读取文件时是否可以在 shell 中扩展选项。
我的意思是,例如,grep支持(A|B)在文件中匹配 A 或 B 之类的语法。
同样,如果我有这些文件:
file1.txt
file2.txt
file3.txt
file4.txt
file5.txt
Run Code Online (Sandbox Code Playgroud)
我能做到cat file{1..5}.txt的bash,因为它扩大了范围。是否有一种等效的方法可以仅对几个文件执行此操作?
例如cat file(1|5).txt,只打印那些 2?
是否可以对目录列表进行“分区” - 说成一些数量的块,以对每个“范围”执行不同的操作?
例如,假设我在另一个文件夹中有以下目录:
$ ls test
abc/
def/
hij/
klm/
nop/
qrs/
tuv/
wxy/
zzz/
Run Code Online (Sandbox Code Playgroud)
我想对前 3 个目录执行一些操作,对第二个 3 执行另一个操作,依此类推。
我的想法是,基于类似的输出,跨数字循环可能会起作用ls | nl(但在任何人提到它之前,我知道解析ls是禁忌!)
这显然不起作用,但说明了我希望的观点:
for dir in `ls | nl`;
do
do-something-with ${dir{1..3}} # Where $dir has taken on some numerical value linked to the folder)
do-something-with ${dir{4..6}}
# And so on...
do-something-with ${dir{n-3..n}}
done
Run Code Online (Sandbox Code Playgroud)
我打算实际执行此操作的文件夹可以按任何顺序处理(即最终拆分可以完全任意),但它们没有逻辑命名一致性 - 我的意思是它们不能按字母顺序或数字顺序进行合理组织基于目录名称本身中的任何键。
是否可以重新启动 X11/Xwindows 会话而不必退出我通过 SSH 连接到的服务器?
我目前在 OSX 上使用 iTerm,并且每隔一段时间 X11(我猜)超时(给我下面的错误)
Vibrant applications require X Windows
Run Code Online (Sandbox Code Playgroud)
并且我必须退出服务器,重新启动 ITerm,然后返回 SSH,这令人沮丧。我已经尝试了我之前看到的一个解决方案,方法是向我添加一个 X11 超时参数,config如下所示:
host someserver
Hostname 111.222.33.444
User joe
ForwardX11 yes
ServerAliveInterval 300
ForwardX11Timeout 595h
Run Code Online (Sandbox Code Playgroud)
但它仍然不是完全健壮,所以重申一下,我可以以任何方式重新启动 X11 而不中断我与服务器的连接状态吗?
或者更好的是,有没有其他方法可以首先防止它发生?!