sed命令插入文本 - bash

时间:2013-10-28 14:14:48

标签: linux bash shell sed

我正在探索sed功能

我这里有一个简单的文本文件,如下所示

Id,水果名称和数量。现在我想分别添加每种水果数量背后的水果量

fruit.txt

1,apple
2,banana

如何让它变成这样。

预期产出

第一次输入sed命令

我的textfile(fruit.txt)会变成这样的

1,apple,50
2,banana,40

2 个答案:

答案 0 :(得分:1)

像这样使用sed:

sed -i -r 's/(apple)(,[0-9]*)?$/\1,10/'

sed -i -r 's/(apple)(,[0-9]*)?$/\1,20/'

sed -i -r 's/(apple)(,[0-9]*)?$/\1,30/'

答案 1 :(得分:1)

使用awk:

awk -F, -v OFS="," '/apple/{$3="whatever"}7' file

但如果您没有gnu awk 4.1,则必须执行此操作以回写该文件:

awk -F, -v OFS="," '/apple/{$3="whatever"}7' file >~/foo.tmp && mv ~/foo.tmp file