如何在终端中使用 sed 执行 for 循环

如何在终端中使用 sed 执行 for 循环

我想用 sed 命令执行 for 循环,但遇到了错误

for i in <comma-separated server name list>;do "command";echo $i;done

其中命令 = sed '/^$/d' /home/nextag/instance.properties|grep -vc '#'

我收到以下错误:- -bash: sed "/^$/d" /home/nextag/instance.properties|grep -vc#: No such file or directory lu1

执行此命令以获得完美输出的正确方法是什么

我也尝试过这个>>for i in lu1;do 'sed \'/^$/d\' /home/nextag/instance.properties|grep -vc \'#\'';echo $i;done

另外,有人能解释'/^$/d'一下sed '/^$/d' /home/nextag/instance.properties|grep -vc '#'

答案1

这应该可行。

for i in <space-delimited server name list>;
do 
sed '/^$/d' /home/nextag/instance.properties | grep -vc '^\s*#';
echo $i;
done

下面的行用于删除所有空行。

'/^$/d'

grep -vc '^\s*#'将忽略以 # 开头的行并给出其他行的数量。

希望这可以帮助。

相关内容