pretty code

2025年6月23日 星期一

shell script 真的很難 debug

可能我還不習慣 debug shell script?

上星期五想要檢查一個 list 檔案的每個項目是否存在於另一個 log 中,殊不知一個這麼簡單的東東,我到今天下班前才有空把它搞定,雖然也是因為我今天根本沒時間靜下心來思考的緣故?

總之,我的架構是用 cat list 取得所有項目,然後再把它應用在 for loop 中,不確定這樣是不是大家常用的做法,但至少我覺得這樣的語法我比較不會忘記XD

下面是我回家模擬的結果。


雖然我知道原本的錯誤是誤把 \r 也餵進 grep 的 pattern,但我一時之間也無法解釋第一個 inst_b 怎麼會印的跟我想的不一樣?

改天再來想想 ...

2025/06/23 洗完澡更新

詢問 Bard 的結果,這個語法我應該記不住XD

#!/bin/bash

list=list.txt
source=hier.txt

while IFS= read -r pattern; do
    pattern=`echo $pattern | tr -d '\r'`
    echo $pattern
    grep -E $pattern $source
    echo -----------
done < $list

沒有留言: