我正在尋找自動修復此規則:
checkstyle:javadoc.SummaryJavadocCheck
我有超過 1000 個 javadoc 在第一行末尾沒有點。我不想一個接一個地編輯檔案,但也許在 bash 中我可以替換 /** 之后沒有結尾的第一行?
有人可以幫我解決這個或另一個想法嗎?
編輯1:
無效的 javadoc:
/**
* Javadoc comment
*
* @return object an object
*/
正確的 javadoc
/**
* Javadoc comment.
*
* @return object an object
*/
聲納想要在線的末端有一個點。這并不重要,只是想知道是否可能。
謝謝
uj5u.com熱心網友回復:
您可以使用awkorsed或 pure bash:完全匹配,/**然后在下一行沒有點時在下一行添加一個點。sed和bash以下版本:
sed 版本:
sed -i.bak '/^\/\*\*$/{n;s/\([^\.]\)$/\1./;}' file1 file2 ...
解釋 :
-i.bak行內編輯檔案,并創建備份 (.bak)。
/^\/\*\*$/僅匹配恰好包含/**.
{...}sed 命令塊
n在模式空間中追加下一行。
s/\([^\.]\)$/\1./用它本身和一個點 ( )替換非 " ." ( ) 最后一個字符。\([^\.]\)$\1.
純 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
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/439464.html
