比较来自两个文件的相同字符串的grep输出

时间:2014-11-06 02:55:15

标签: linux bash

我有3个文件: 1包含要检查的字符串列表 2包含新价格 3包含如果文件#2中的价格发生变化则需要更换的价格

示例:

文件#1     ITEM1     ITEM2

文件#2

item1cost100
item2cost200

文件## 3

item1cost101
item2cost199

运行脚本后,应更新文件#3

文件## 3

item1cost100
item2cost200

文件#2和#3包含大量条目,但只需检查文件#1中的条目,如果不同,则写入文件#3

我只得到比较1个字符串的两个文件,我不知道如何循环文件#1的内容以及如何将更改写入文件#3 我开始使用sed命令并且不知道如何解包变量

这是我得到的

item="item1"
itemold=$(cat file2 | grep item1)
echo $itemold
itemnew=$(cat file3 | grep item1)
echo $itemnew
echo $item
if [ $itemold = $itemnew ]; then
echo "MATCH!"
else
echo "NO MATCH!"
fi

1 个答案:

答案 0 :(得分:0)

#!/bin/bash
cut -d' ' -f1 file1 > a
grep `cat a` file2 > b
grep `cat a` file3 > c
sed s/`cat c`/`cat b`/g file3 > d
cut -d' ' -f2 file1 > a
grep `cat a` file2 > b
grep `cat a` file3 > c
sed s/`cat c`/`cat b`/g d > file3

这照顾你给的情况。它可以概括。