gpt4 book ai didi

linux - Unix/Linux,删除行中的注释

转载 作者:太空宇宙 更新时间:2023-11-04 09:38:41 25 4
gpt4 key购买 nike

我需要在不删除任何代码的情况下从用户输入行中删除/删除评论。例如:

mail -s 'text' brown < text #comments

如何删除注释并保持代码完好无损?我可以删除以 # 开头的行,但如果它从行的中间某处开始,则不能。

我试过:

echo $line | sed -e 's/\

但它不起作用。知道我做错了什么吗?

此外,如何检测不使用# 开始评论的情况?例如引用 # 和以 # 结尾的代码行,因为它们不是注释。

echo $line | sed -e  '/^#/d'

在这一行中,# 不是用作注释,而是作为代码的一部分。我发现我需要检测 # 是否在引号内或 # 之前没有空格字符。如何让输出保持原样?

最佳答案

您可以使用此 awk 删除所有从 # 到行尾的内容

awk '{sub(/#.*$/,"")}1' file

但是如果你有这样的文件:

#!/bin/bash
pidof tail #See if tail is running
if [ $? -ne 0 ] ; then #start loop
awk '{print " # "$8}' file >tmp # this is my code
fi # end of loop
awk -F# '{for (i=1;i<=NF;i++) print $i}' file > tmp2
a=a+1 # increment a

您无法在不销毁评论的情况下自动删除评论。

关于linux - Unix/Linux,删除行中的注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23601260/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com