にリダイレクトします。bashスクリプトでは、各ファイルで次のPerlコマンドを呼び出して、そのファイルにPerlコマンドの出力をリダイレクトします。Perlコマンドの出力をファイル
Perlコマンドは単にremoves the comments from the fileです。それがコンソールに印刷されると、うまくいくように見えます。しかし、個々のファイルに出力をリダイレクトしようとすると、ファイルは空になります。私はここで間違って何をしていますか?
#!/usr/bin/env bash
shopt -s globstar
for file in ./**/*.java; do
perl -0pe 's|//.*?\n|\n|g; s#/\*(.|\n)*?\*/##g; s/\n\n+/\n\n/g' "$file" > "$file";
done
ヒント: '-0'は実際にファイルをスラップしません。代わりに '-0777'を使うべきです。 – ikegami
@ikegamiどのようにしてファイルを行単位で処理できなかったのですか? – rapt
'$/=" \ 0 ";'( '-0')と' $/= undef; '(' -0777')の違いを読んでください。それは最初の嫌がらせの意図ではありません(常にそうとは限りません)。 – ikegami