有没有办法从///
评论中在 doc/ 中生成单个降价文件?
多个降价文件(doc/main.md
、doc/foo.md
等)也很好。
我是 Rust 的新手,虽然生成的 HTML 文档很好,但我主要使用命令行,真的不想为了阅读文档而在我的终端和 Web 浏览器之间切换。这打破了流程并使我离开了区域。此外,md 很容易转换为手册页,或转换为 TeX 以用于打印或 PDF 文档。
(我已经习惯了中止与按Ctrl-Z的vim或者使用其他终端选项卡,并运行man
或perldoc
或pydoc
等文本模式浏览器,如lynx
,也不links
是我不擅长的选项-导航显得笨拙,输出是对我的200多列丑如果我忘记使用该-width
选项,则终端窗口不支持 javascript)
我写了一个munin插件,它使用slurm的sacct来监视HPC集群上的作业状态.我用sh + awk编写了它(而不是我常用的工具,perl).
该脚本有效,但我花了很多时间才弄清楚如何预先填充可能状态的关联数组(一些/大多数可能不存在于sacct输出中,我希望它们默认为零).谷歌没有多大帮助,我能想到的最好的就是在字符串上使用split来生成一个临时数组,然后我迭代了.
我想出了这个:
BEGIN {
num = split("cancelled completed completing failed nodefail pending running suspended timeout",statenames," ");
for (i=1;i<=num;i++) {
states[statenames[i]] = 0
}
}
Run Code Online (Sandbox Code Playgroud)
这可行,但与我在perl中的方式相比看起来很笨拙,如下所示:
foreach (qw(cancelled completed completing failed nodefail pending running suspended timeout)) {
$states{$_} = 0;
}
Run Code Online (Sandbox Code Playgroud)
或这个
%states = map {$_ => 0} qw(cancelled completed completing failed nodefail pending running suspended timeout);
Run Code Online (Sandbox Code Playgroud)
我的问题是:有没有办法在awk中执行此操作,类似于任何一个perl版本?
[编辑]
澄清一下,这是一个我输入awk的sacct输出样本.请注意,此输出中的唯一状态是RUNNING,COMPLETED和CANCELED - 其他状态不存在(因为它们今天没有出现),但我仍然希望它们在我的脚本输出中(以munin可用的形式表示为" statename.value 0").
# sacct -X -P -o 'state' -n
RUNNING
RUNNING
RUNNING
RUNNING
COMPLETED
RUNNING
COMPLETED …
Run Code Online (Sandbox Code Playgroud)