1
我正在研究一個從bash文件中提取註釋並將它們輸出到新文件的程序。Grep表達式不包含我想要的一些匹配
我需要忽略#中的''或'「引用,我認爲我已經做得正確。
grep -oe "[^\'\"\\]#[^\'\"].*" somefile >> somecomments
這提取了一些文本正確的註釋,例如,
echo Sum: $Sum # Displays the sum
將被轉換爲「#在輸出文件中顯示總和」。 問題在於,由於某些原因,以#開始的行現在被排除,例如,
# Name
# Date
根本不會顯示在輸出文件中。
我該如何解決我的表達問題,以便我仍然可以排除#前面的引號,但是會提取以#開頭的行?
你不會得到這個工作。註釋以'#'開頭,但'#'也可能是'code'的一部分。你需要一個大的異常列表,可以說這個'#'是代碼的一部分,忽略。 – Jotne
[Unix/Linux,Delete lines from lines]的可能重複(http://stackoverflow.com/questions/23601260/unix-linux-delete-comments-from-lines) – Jotne