簡體   English   中英

bash:循環中的grep不會grep

[英]bash: grep in loop does not grep

我有一個(可能是顯而易見的/愚蠢的)問題:我想遍歷路徑列表,剪切路徑,然后使用字符串在日志文件中進行grep。 盡管每個步驟都可以正常運行並且“手動處理”會導致命中-grep在循環中找不到任何內容?

for FILE in `awk -F "/" '{print $13}' /tmp/files_not_visible.uniq`; do
  echo -e "\n\n$FILE\n";
  grep "$FILE" /var/log/PATH/FILENAME-2015.12.*;
done

我也嘗試做一會兒循環作為反向鍛煉,但由於沒有結果而失敗

while read FILE; do
  echo $FILE;
  echo $FILE | awk -F "/" '{print $13}' | grep -f - /var/log/PATH/FILENAME-2015.12.* ;
done < /tmp/files_not_visible.uniq/tmp/files_not_visible.uniq

所以,我想這是一個系統性的問題,我該如何使用grep處理搜索字符串?

發現它:文件列表中包含不可見字符作為該行的最后一個字符! 向我發送文件列表的用戶可能是在其他操作系統上創建的! 而且,我只在手工測試時才復制了-當然-可見字符!

通過使用剪切一行的最后一個字符來修復循環

> sed -e 's/.$//'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM