在学习的过程中一个新的软件常常有好多种命令,每个命令还有开发者设定的子选项,常常多,通常去搜索的时候可能会因为版本问题,自己找到的文章里写的命令自己的不支持;
自己也在学习新的软件,我倾向于整理出来所有的命令后续我再照 app --help的结果去看具体有哪些命令可以解决需求;
需要先整理出一份txt,譬如docker 60个支持的命令
命令整理就是docker --help然后把文案复制到excel或者其他文本处理工具整理一下
然后用下面这个脚本
#! /bin/bash
echo "this is a shell script!"
echo "请输入读取命令来源的txt文件(样例:/path/file.txt):"
read cmdList_path
echo "请输入查询结果路径"
read result_path
awk -F '[[:space:],]+' -v outPath=${result_path} '{
print $0;
cmd = $1 " " $2 " --help";
result_file = outPath"/"$1"_"$2".md";
system(cmd " >> " result_file)
} END {
print NR " lines processed"
}' ${cmdList_path}
这个命令在macOS也能用,新人记得把开头的解析器bash改为zsh;mac系统用的是zsh
我是配合obsidian做整理,所以输出的目录直接放在笔记目录下,result_file中是.md格式,方便ob识别;大家可以自己替换自己想要的且支持的文件格式
-F 后面是针对每一行的分隔符的解析
$0 在awk中表示txt文件的一行的所有内容; $1 与 $2 则分别代表分隔符切割后的列,第一列第二列;
awk中{}内代码默认对每一行都执行一次, END {..}里的代码是所有行操作完执行的动作