我想從使用grep與IF stmt的文件中找到特定的字符串。但我無法這樣做。輸入文件(文件名:input_file_txt)包含大量的字符串,我只能從中刪除需要搜索的值。我正在使用awk並將其寫入文件。然後,使用grep,搜索字符串。我最終發現了一個奇怪的錯誤,我無法弄清楚。給輸入文件的內容,代碼我用和錯誤消息我得到使用grep與if語句搜索字符串
內容input_file_txt:
123456 ----- abcd|abcd_vasa|nodatapts|1 ----- Assigned ----- @assignee ----- 0 ----- 2015-06-12
789011 ----- abcd|efgh_vasa|yesdata|56 ----- WIP ----- @assignee ----- 0 ----- 2015-06-12
而且我的代碼:
我得到while
read LINE
echo "$LINE"
echo "going into the loop"
do
echo $LINE|awk -F\----- '{ print $2 }' >> /var/tmp/dummy_file
cat /var/tmp/dummy_file
if [ grep -q -i -E "abcd" /var/tmp/dummy_file ];then
count=expr "$count" + 1
echo "$count"
echo "$LINE" >> /var/tmp/dummy_ticket_NA
cat /var/tmp/dummy_ticket_NA
fi
done < /var/tmp/input_file_txt`
錯誤信息:
123456 ----- abcd|abcd_vasa|nodatapts|1 ----- Assigned ----- @assignee ----- 0 ----- 2015-06-12
going into the loop
abcd_vasa
going into the loop
going into the loop
going into the loop
going into the loop
going into the loop
預期的O/P爲:
123456 ----- abcd|abcd_vasa|nodatapts|1 ----- Assigned ----- @assignee ----- 0 ----- 2015-06-12
going into the loop
abcd_vasa
1
abcd_vasa
請參閱[Bash Pitfall#9](http://mywiki.wooledge.org/BashPitfalls#if_.5Bgrep_foo_myfile.5D) – kojiro