在 AIX 上使用附加模式 sed

Using an append pattern sed on AIX

我一直在努力尝试使用 sed 找到一个模式,然后在 AIX 上追加一个字符。 我在 Linux 上完全没有问题,但我真的不明白它在 AIX 上应该如何工作。

很简单: 我有一个 /tmp/test.txt :

1
2
3
4
5

我想要:

1
2
10
3
4
5

以便我了解它在 AIX 上的工作原理。

在Linux,我可以做到

sed -i '/2/ a 10\' /tmp/test.txt

有效。在 AIX 上,我知道我们必须解决这个问题,因为没有 -i。但即使看了其他话题,比如 Find pattern and append in sed

我按照他们的例子试过了

cat /tmp/test.txt | sed '/2/i' > /tmp/test.temp
cat /tmp/test.txt | sed '\|"2"|i' > /tmp/test.temp 

可能还有很多其他的组合,但我得到了一些无法解析的东西,或者它没有被重新定义为一个函数。或者也可以是运行,但是我看test.temp的时候什么都没发生

提前致谢,

AIX!sed 不支持 GNU 扩展,仅支持严格的 Posix 格式(包括 a\ 部分后的换行符)。例如:

sed '/pattern/a\
insert after pattern
/pattern2/i\
insert before pattern2 - first line\
insert before pattern2 - second line'