我一直在困惑着一个我目前正试图弄清楚的问题。我有一个包含类似于下面一个bash case语句文件:使用sed自动插入bash case语句的文本
#!/bin/bash
# some stuff here
case "$1" in
start)
# some more stuff here
;;
stop|restart)
# here is some more stuff
;;
*)
# stuff stuff stuff
;;
esac
我想(用脚本),使用sed
第一个case语句的末尾插入一些命令。到目前为止,我想出了以下内容:
sed -e '/^[ \t]*start)/,$ { s/^\([ \t]*\);;/\1my_command_here\n\1;;/ }'
它会插入命令到所有case语句,而我似乎无法有与之相匹配的只有第一个声明。以下是我想要的sed
命令输出:
#!/bin/bash
# some stuff here
case "$1" in
start)
# some more stuff here
my_command_here
;;
stop|restart)
# here is some more stuff
;;
*)
# stuff stuff stuff
;;
esac
我最初打算非贪婪水珠从start)
到第一;;
但我似乎无法得到那个工作要么。有任何想法吗?
在这种情况下不'awk'会更好? – user3159253