【发布时间】:2020-11-17 06:36:39
【问题描述】:
我有一个小脚本,它基本上会在我的~/scripts 文件夹中生成一个包含所有脚本的菜单,并且每个脚本旁边都会显示一个描述它的句子,该句子是脚本中被注释掉的第三行。然后,我计划将其通过管道传输到 fzf 或 dmenu 以选择它并开始编辑它或其他任何东西。
1 #!/bin/bash
2
3 # a script to do
所以它看起来像这样
foo.sh a script to do X
bar.sh a script to do Y
目前我让它在脚本文件夹中的所有文件上运行for 循环,然后在所有文件上运行sed -n 3p。
for i in $(ls -1 ~/scripts); do
echo -n "$i"
sed -n 3p "~/scripts/$i"
echo
done | column -t -s '#' | ...
我想知道是否有更有效的方法来做到这一点,它不涉及 for 循环,只使用sed。任何帮助将不胜感激。谢谢!
【问题讨论】:
-
这里为什么需要
ls?你可以做一个for file in ~/scripts/*;,然后简单地sed -n 3p "$file"。