我想要一個bash腳本,將採取File1中的項目1,遍歷File2中的所有行和輸出,如果存在匹配。以遞歸方式繼續該模式,Item2,File1遍歷File2中的所有行進行匹配,繼續此模式,直至處理完文件1中的所有行。Bash Scipt比較兩個文件的匹配
現在,檢查這一點,樣本數據。
File1中 - 主機名的單柱,使用短名稱
vsie1p990 vsie1p991 vsie1p992 ...
文件2 - 多列,逗號分隔,第一列是主機名(短名稱)
格式:短名稱,IP地址,FQDN
vsie1p992,191.167.44.212,vsie1p992.srv.us.company.com
我嘗試以下,但有些事是不完全正確:
#!/bin/bash
echo "Report Generated"
date
count=0
while read list ; do
{
IT=`grep -i "$list" $2`
If [ -n "$IT" ] ; then
echo "Match Found: $list"
count=`expr "$count" + 1`
fi
}
done <$1
echo "Total Matches = $count"
運行示例:> ./checkit.sh列表1列表2
任何幫助,諮詢,指導,將不勝感激。
- 理查德
您請求的模式非常低效。爲什麼你想要遵循這個算法? –
...要清楚,你可以使用'join'來實現更好/更快的事情。 –
結果有什麼問題?腳本不包括所有匹配嗎?您是否確定線條不會以空格或製表符或甚至CR-LF結尾,這會導致CR,空間等存在,從而減少甚至消除所有可能的匹配? –