ディレクトリにJavaファイルがたくさんあり、すでにそれらがない場合はパッケージ宣言を挿入したいと思います。私はgrepでそれを達成できますか?はいの場合はどのように教えてください?grepを使用してテキストを挿入します
ありがとうございました。
ディレクトリにJavaファイルがたくさんあり、すでにそれらがない場合はパッケージ宣言を挿入したいと思います。私はgrepでそれを達成できますか?はいの場合はどのように教えてください?grepを使用してテキストを挿入します
ありがとうございました。
いいえ、できません。 grep
は、公式にはprint lines matching a pattern
と記載されています。
フィルタの場合は、まだ出力されていないものは出力されません(ただし出力は少なくなることがあります)。特に、が不明なパッケージ宣言を出力することはできません。ただし、ファイルがパッケージ宣言を持っているかどうかをテストするためにそれを使用することができます:perl
も人気がありますが、
<insert your favorite "for each java file" statement>
if egrep -q "^package " $file; then
<insert command to insert package declaration> $file
fi
<end loop>
あなたはおそらく、awk
を探しています。
ありがとう、私はチェックします – George
試してみてください。
#!/bin/tcsh
foreach a (`ls *.java`)
cat ${a} | awk 'BEGIN {P=0} /package/ {P=1} /import/ {if (P == 0) {P=1;print "package X;"}} {print}' > t1
mv t1 ${a}
end
それは言葉package
とimport
を探します。
package
の前にimport
と表示されている場合は、「パッケージX」が印刷されます。
いいえ、他のツールのいずれかが必要です。 sed/awkなど –
Grepは、パッケージ宣言がないファイルを識別するのに役立ちます( '-l'スイッチを参照してください。このスイッチは正規表現に一致するファイル名のみをリストします)。あなたはおそらく、 '$ for in grep -l" expression "*"のようなものを使って、sedを使ってファイルを修正することができます。 $ sを変更するためにsed -i "コマンドを実行してください";完了しました。 –