find . -name "*.java" -type f -perm +600 -print | xargs -I _ sh -c 'grep -q hexianmao _ && iconv -f gb2312 -t utf8 -o _ -c _ '
Эта команда выполняет поиск всех файлов с расширением .java, имеющих права доступа на чтение, и содержащих в своем содержимом строку «hexianmao». Затем она применяет кодирование файлов из кодировки gb2312 в кодировку utf8 с помощью утилиты iconv. Все изменения записываются в исходные файлы.
Эта команда может быть полезна, если вам необходимо изменить кодировку исходного файла Java с одной на другую. В результате файлы, содержащие строку «hexianmao», будут изменены на кодировку UTF-8.
Альтернативой этой команде может быть использование других инструментов для изменения кодировки файлов, таких как Java IDEs, текстовые редакторы или инструменты командной строки, которые поддерживают изменение кодировки.
Передаваемые команде аргументы:
— -name «*.java»: ограничивает поиск файлов только с расширением .java.
— -type f: ищет только обычные файлы (не директории и не симлинки).
— -perm +600: ищет файлы с правами доступа на чтение и запись для владельца.
— -print: выводит список найденных файлов.
— xargs -i _: передает каждый найденный файл в качестве аргумента для следующей команды.
— sh -c ‘grep -q hexianmao _ && iconv -f gb2312 -t utf8 -o _ -c _’: выполняет команды для каждого найденного файла. Сначала команда grep ищет строку «hexianmao» в файле, а затем команда iconv изменяет кодировку файла из gb2312 в utf8.