으로 리디렉션합니다. 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'은 실제로 파일을 slurp하지 않습니다. 대신에 -0777을 사용해야합니다. – ikegami
@ikegami 파일을 한 줄씩 처리 할 수 없었던 이유는 무엇입니까? – rapt
'$/= "\ 0";'('-0')과'$/= undef;'('-0777')의 차이점을 읽어보십시오. 처음에 술을 마시는 사람의 의도는 아닙니다 (항상 그렇지는 않습니다). – ikegami