我可以使用 sed 的 & 变量在 $() 内进行操作吗?

我可以使用 sed 的 & 变量在 $() 内进行操作吗?

我不确定下面的语句是否可以将 & 放在 $() 内,以便每次 & 被 1,2,3,4 替换,并添加 1 。

echo 1 2 3 4 | tr ' ' '\n' | sed "s/.*/$(echo expr 1 + &)/"

上面的语句不起作用

我得到输出:

expr 1 +
expr 1 +
expr 1 +
expr 1 +

答案1

如果你不这样做需要为此sed,这里有一些其他选项:

$ echo 1 2 3 4 | tr ' ' '\n' | while read f; do let f+=1; echo $f; done
2
3
4
5
$ echo 1 2 3 4 | tr ' ' '\n' | awk '{print $1+1}'
2
3
4
5
$ echo 1 2 3 4 | tr ' ' '\n' | perl -lne '$i=$_+1; print $i'
2
3
4
5

sed是一个流编辑器,它不应该执行数学表达式。

相关内容