我可以使用 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是一個流編輯器,它不應該執行數學表達式。

相關內容