我需要從用戶輸入行中刪除/刪除註釋而不刪除任何代碼。例如:Unix/Linux,刪除行註釋
mail -s 'text' brown < text #comments
如何刪除註釋並保持代碼不變? 我可以刪除以#開頭的行,但如果它從行中間的某個位置開始,則不能刪除。
我想:
echo $line | sed -e 's/\
,但它不工作。任何想法我做錯了什麼?
另外,如何檢測#未用於開始評論的情況? 例如引用#和以#結尾的代碼行,因爲它們不是註釋。
echo $line | sed -e '/^#/d'
在這一行中,#不用作註釋,而是用作代碼的一部分。我發現我需要檢測,如果#在引號內或在#之前沒有空格字符。我該如何離開輸出?
我想知道您是如何認爲您可以自動從我的帖子中的示例文件中刪除評論的。 – Jotne
除非您考慮到shell腳本的詞法結構,否則不可能完成這項工作。你需要處理單引號字符串,雙引號字符串,變量擴展例如'$#'和'$ {#variable}'和'$ {variable#head}',這裏是文檔(作爲開始)。當你能夠準確地檢測到它們時,在他們所有的榮耀中(記住,引用的字符串可以延伸到多行!),然後你就可以開始檢測評論。請注意'echo a#b'回顯三個字符加一個換行符。 –