我有两个文件
文件1
104.128.225.208:8000
103.27.24.114:80
104.128.225.208:8000
和文件2
103.27.24.114:99999999
103.27.24.114:88888888888
104.128.225.208:8000
103.27.24.114:80
104.128.225.208:8000
在文件2中有两行新行
103.27.24.114:99999999
103.27.24.114:88888888888
所以我想检查文件中是否有新行
for i in $(cat $2)
do
for j in $(cat $1)
do
if [ $i = $j ]; then
echo $i
fi
done
done
/.program file1 file2
但我没有得到预期的产出。我认为我的if语句不起作用。我做错什么了?
最佳答案
你的问题可能是你在file1中的每一行上为file2中的每一行循环。comm
实用程序可以满足您的需要,但它假定两个文件都已排序。
$ sort file1 -o file1
$ sort file2 -o file2
$ comm -13 file1 file2
103.27.24.114:99999999
103.27.24.114:88888888888
关于linux - 嵌套的Shell用于循环和字符串比较,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29289020/