Linux 仅当输出发生变化时才从控制台提取信息

Linux 仅当输出发生变化时才从控制台提取信息,linux,bash,awk,sed,Linux,Bash,Awk,Sed,以下是我试图实现的目标: 应用程序在cron中运行并检查可用价格 ./checkprice | grep price 然后返回: run at October 15 price item1 19.99 price item2 2.99 price item3 3.99 run at October 16 price item1 19.49 price item2 2.99 price item3 3.99 您看到项目2的两个条目的原因是因为价格变化 如何将新价格输入到具有以下格式的文件中:

以下是我试图实现的目标:

应用程序在cron中运行并检查可用价格

./checkprice | grep price
然后返回:

run at October 15
price item1 19.99
price item2 2.99
price item3 3.99

run at October 16
price item1 19.49
price item2 2.99
price item3 3.99
您看到项目2的两个条目的原因是因为价格变化

如何将新价格输入到具有以下格式的文件中:

item1
19.99

item2
2.99

item3
3.99

sed是一个单行编辑器,因此您必须使用awk或更改文件格式。我个人会改变文件格式,做类似的事情

item1 19.99
item2 4.99
cmd="sed -i 's/$item.*/$item $price/' file"
eval $cmd
然后,当你得到新的价格,你可以这样做

item1 19.99
item2 4.99
cmd="sed -i 's/$item.*/$item $price/' file"
eval $cmd

我不知道如何。/checkprice | grep price打印上述结果..如何输入。。。?和编辑在一起?你问的不太清楚。。。随便猜一猜,也许你想要这样的东西./checkprice | awk'$1==price{printf%s\n%s\n\n,$2,$3}>>my_price_file.txt。。。