我有file1:
A
B
C
D
我有文件2:
B
C
我想使用while循环读取两个文件来比较它们,并打印出任何匹配行的file1的行号。
COUNT=0
while read line
do
flag = 0
while read line2
do
COUNT=$(( $COUNT + 1 ))
if ( "$line" = "$line2" )
then
flag = 1
fi
done < file1
if ( flag -eq 1 )
then
echo $COUNT > file3
fi
done < file2
但是我收到错误:找不到B命令
请有人让我知道我哪里出错了。感谢。
答案 0 :(得分:0)
此代码中存在很多错误,但要回答这个问题,您获得B command not found
的原因是因为........我们使用[]
而不是{ bash中的{1}}。
其他错误包括:
()
答案 1 :(得分:0)
你也可以使用grep -c
来实现你想要的东西:
#!/bin/bash
# Clean file3
>file3
while read line; do
COUNT=$(grep -c "^$line$" file2)
if [ $COUNT -ge 1 ]; then
$COUNT >> file3
fi
done < file1
grep -c
打印表达式与文件内容匹配的次数。