今天在用BASH實作將檔案A的每一行當作一個字串取出來,去B檔案裡尋找看有沒有批配的字串,寫法大致如下:

#!/bin/bash
filename='B.txt'
filelines=`cat A.txt`

for line in $filelines ; do
    echo $line
    grep -q $line $filename
    nRet="$?"
    echo "$nRet"
done

結果發現nRet的值都是1,表示A檔案裡沒有一行在B檔案裡有批配的字串,心想怎麼會跟預期的完全相反,沒想到在SHELL裡加入set -x後,再次看運作流程時,發現$line的內容有包含換行符號,也就是\r,但是grep去B檔案比較每一行時不會包含換行符號的比較,難怪怎麼比都不成功啊,這次還真是一次難得的經驗,希望以後會愈寫愈上手。

 


文章標籤

ivch23 發表在 痞客邦 留言(0) 人氣()