如何在每行的末尾添加文本,包含sed或awk行中的文本?

时间:2014-08-29 08:28:46

标签: awk sed

例如,我有下一条短信:

before1/endpoint-1
before2/endpoint-2
before3/endpoint-3

我想输出下一个:

before1/endpoint-1=somethingelse/endpoint-1
before2/endpoint-2=somethingelse/endpoint-2
before3/endpoint-3=somethingelse/endpoint-3

所以我想在每一行的末尾添加=somethingelse/,然后从它后面​​的行获得相同的端点。

我知道我可以按如下方式添加=somethingelse/部分:

sed -i 's/$/=somethingelse\//' textfile

但是如何在端点之后添加相同的部分?

2 个答案:

答案 0 :(得分:6)

有很多方法可以达到你的目标,例如awk one-liner:

awk -F'/' '$0=$0"=somethingelse" FS $2'

或sed:

sed 's#/.*#&=somethingelse&#'

答案 1 :(得分:4)

通过sed,

$ sed 's~\([^\/]*\)$~\1=somethingelse/\1~' file
before1/endpoint-1=somethingelse/endpoint-1
before2/endpoint-2=somethingelse/endpoint-2
before3/endpoint-3=somethingelse/endpoint-3