自动修复声纳规则
Automatically fix sonar rule
我正在寻找自动修复此规则的方法:
checkstyle:javadoc.SummaryJavadocCheck
我有超过 1000 个在第一行末尾没有点的 javadoc。我不想一个一个地编辑文件,但也许在 bash 中我可以替换 /** 后面没有点的第一行?
有人可以帮我解决这个或另一个问题吗?
编辑 1:
无效的 javadoc :
/**
* Javadoc comment
*
* @return object an object
*/
更正 javadoc
/**
* Javadoc comment.
*
* @return object an object
*/
Sonar 想要在线末端的一个点。不重要,只是想知道是否可行。
谢谢
您可以使用 awk
或 sed
,或纯 bash
:完全匹配 /**
然后在下一行没有点的情况下添加一个点。 sed
和 bash
以下版本:
sed 版本:
sed -i.bak '/^\/\*\*$/{n;s/\([^\.]\)$/./;}' file1 file2 ...
解释:
-i.bak
内联编辑文件,并创建备份 (.bak)。
/^\/\*\*$/
仅匹配恰好包含 /**
.
的行
{...}
sed 命令块
n
在模式 space.
中追加下一行
s/\([^\.]\)$/./
将非“.
”(\([^\.]\)$
)最后一个字符替换为自身和一个点(.
)。
纯bash解:
#!/bin/bash
while read -r line; do
if [[ $line =~ ^/\*\*$ ]]; then
read -r line2
[[ $line2 =~ \.$ ]] || line2="$line2."
printf -v line "%s\n%s" "$line" "$line2"
fi
printf "%s\n" "$line"
done
要执行与 sed 的 -i.bak
相同的操作,您可以将 bash 版本与类似的东西一起使用:
for file in *.java; do
cp -p "$file" "$file.bak"
./script.bash < "$file.bak" > "$file"
done
我正在寻找自动修复此规则的方法:
checkstyle:javadoc.SummaryJavadocCheck
我有超过 1000 个在第一行末尾没有点的 javadoc。我不想一个一个地编辑文件,但也许在 bash 中我可以替换 /** 后面没有点的第一行?
有人可以帮我解决这个或另一个问题吗?
编辑 1:
无效的 javadoc :
/**
* Javadoc comment
*
* @return object an object
*/
更正 javadoc
/**
* Javadoc comment.
*
* @return object an object
*/
Sonar 想要在线末端的一个点。不重要,只是想知道是否可行。
谢谢
您可以使用 awk
或 sed
,或纯 bash
:完全匹配 /**
然后在下一行没有点的情况下添加一个点。 sed
和 bash
以下版本:
sed 版本:
sed -i.bak '/^\/\*\*$/{n;s/\([^\.]\)$/./;}' file1 file2 ...
解释:
-i.bak
内联编辑文件,并创建备份 (.bak)。
/^\/\*\*$/
仅匹配恰好包含 /**
.
{...}
sed 命令块
n
在模式 space.
s/\([^\.]\)$/./
将非“.
”(\([^\.]\)$
)最后一个字符替换为自身和一个点(.
)。
纯bash解:
#!/bin/bash
while read -r line; do
if [[ $line =~ ^/\*\*$ ]]; then
read -r line2
[[ $line2 =~ \.$ ]] || line2="$line2."
printf -v line "%s\n%s" "$line" "$line2"
fi
printf "%s\n" "$line"
done
要执行与 sed 的 -i.bak
相同的操作,您可以将 bash 版本与类似的东西一起使用:
for file in *.java; do
cp -p "$file" "$file.bak"
./script.bash < "$file.bak" > "$file"
done