1

我正在探索 sed 功能

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

ID,水果名称和数量。现在我想分别在每个水果的数量后面加上水果的数量

水果.txt

1,apple
2,banana

如何让它变成这样。

预期产出

sed 命令的第一个输入

我的文本文件(fruit.txt)会变成这样

1,apple,50
2,banana,40
4

2 回答 2

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/'
于 2013-10-28T14:19:01.843 回答
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
于 2013-10-28T14:19:28.083 回答