我探索SED功能sed命令插入文本 - 庆典
什么我这里是低于
标识,水果名称及数量显示简单的文本文件。现在我想添加的每个水果的分别数量
fruit.txt背后的水果量
1,apple
2,banana
如何使它变成这个样子。
预期输出
sed命令
我的文本文件(fruit.txt)的第一个输入变成这个样子
1,apple,50
2,banana,40
我探索SED功能sed命令插入文本 - 庆典
什么我这里是低于
标识,水果名称及数量显示简单的文本文件。现在我想添加的每个水果的分别数量
fruit.txt背后的水果量
1,apple
2,banana
如何使它变成这个样子。
预期输出
sed命令
我的文本文件(fruit.txt)的第一个输入变成这个样子
1,apple,50
2,banana,40
用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/'
使用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
感谢您的帮助! – user2928337
'7'做什么?我假设它回写到原始文件,比如'sed -i'。我在哪里可以得到这些数字的名单及其含义? – anishsane
@anishsane'7'(任何非零数字)都执行默认awk动作,即“print” – Kent
的感谢! – user2928337
不客气,很高兴它为你工作。 – anubhava
抱歉打扰你了,你是否能解释像什么是-R,S /等我在正则表达式糟透了。据我所知,** - 我被插入**,** /秒(苹果)是指从苹果开始**和**([0-9 *])是指与任何数量开始从0-9和比赛任何背后的**。我不确定?$/\ 1,30/part – user2928337