我经常发现自己正在编写一个很长的bash或zsh命令,而该命令本身还不够长,无法成为脚本。例如,当我调试sed表达式时,经常更改一个字符并重新运行命令以查看输出如何变化:
$ echo "123 eyes on me" | sed -E 's/[[:alnum:]*]//'
23 eyes on me
$ echo "123 eyes on me" | sed -E 's/[[:alnum:]]*//'
eyes on me
$ echo "123 eyes on me" | sed -E 's/[[:alnum:] ]*//'
$ echo "123 eyes on me" | sed -E 's/[[:digit:] ]*//'
eyes on me
即使知道vi-mode
并精通终端,每次编辑前一个命令并重新运行它也很麻烦。我宁愿只是就地编辑参数,并实时查看其效果。
有些网站针对特定用例提供了此类工具,例如,使用正则表达式匹配:
其他示例包括JSON linters,计算器或YAML解析器。但是,这些都存在多个问题:
tr
,然后再用awk
选择第三列怎么办?有什么方法可以在终端中实时开发命令行表达式,并在输入时看到输出?
答案 0 :(得分:0)
我通常只是将代码放入sed.sh
:
echo "testing 123" | sed 's/123/456/'
然后在终端中观看此文件的执行情况:
watch -n1 './sed.sh'