我有3个文件: 1 包含要检查的字符串列表 2 包含新价格 3 包含如果文件 #2 中的价格发生变化则需要替换的价格
示例:
文件 #1 项目1 项目2
文件#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
最佳答案
#!/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
这会处理您提供的案例。这是可以概括的。
关于linux - 比较两个文件中相同字符串的 grep 输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26770972/