У меня много отладочных операторов, делающих нечитаемые трассировки стека (не мой вызов), например:
00:53:59,906 - j.util.indexing.FileBasedIndex - START INDEX SHUTDOWN
00:53:09,192 - .impl.stores.XmlElementStorage - Document was not loaded for $APP_CONFIG$/macros.xml
00:53:09,195 - s.impl.stores.FileBasedStorage - Document was not loaded for $APP_CONFIG$/quicklists.xml file is null
00:53:09,195 - .impl.stores.XmlElementStorage - Document was not loaded for $APP_CONFIG$/quicklists.xml
00:53:09,696 - ij.openapi.wm.impl.IdeRootPane - App initialization took 5584 ms
00:53:11,677 - TestNG Runner - Create TestNG Template Configuration
00:53:13,628 - indexing.UnindexedFilesUpdater - Unindexed files update started
00:53:15,370 - indexing.UnindexedFilesUpdater - Unindexed files update done
00:53:20,873 - tor.impl.FileEditorManagerImpl - Project opening took 10569 ms
00:53:31,862 - s.impl.stores.FileBasedStorage - Document was not loaded for $APP_CONFIG$/intentionSettings.xml file is null
00:53:31,862 - .impl.stores.XmlElementStorage - Document was not loaded for $APP_CONFIG$/intentionSettings.xml
00:54:00,723 - j.util.indexing.FileBasedIndex - END INDEX SHUTDOWN
И я хочу, чтобы они выглядели так:
00:53:59,906 - j.util.indexing.FileBasedIndex - START INDEX SHUTDOWN
00:53:09,192 - .impl.stores.XmlElementStorage - Document was not loaded for $APP_CONFIG$/macros.xml
00:53:09,195 - s.impl.stores.FileBasedStorage - Document was not loaded for $APP_CONFIG$/quicklists.xml file is null
00:53:09,195 - .impl.stores.XmlElementStorage - Document was not loaded for $APP_CONFIG$/quicklists.xml
00:53:09,696 - ij.openapi.wm.impl.IdeRootPane - App initialization took 5584 ms
00:53:11,677 - TestNG Runner - Create TestNG Template Configuration
00:53:13,628 - indexing.UnindexedFilesUpdater - Unindexed files update started
00:53:15,370 - indexing.UnindexedFilesUpdater - Unindexed files update done
00:53:20,873 - tor.impl.FileEditorManagerImpl - Project opening took 10569 ms
00:53:31,862 - s.impl.stores.FileBasedStorage - Document was not loaded for $APP_CONFIG$/intentionSettings.xml file is null
00:53:31,862 - .impl.stores.XmlElementStorage - Document was not loaded for $APP_CONFIG$/intentionSettings.xml
00:54:00,723 - j.util.indexing.FileBasedIndex - END INDEX SHUTDOWN
Теперь мой код отформатирован автоматически, поэтому я точно знаю, сколько символов в исходном коде для уровня отступа.
Что я хочу сделать, так это автоматически заменять каждую строку в моем коде следующим образом:
log.debug("some silly debug line");
с:
log.debug(" " + "some silly debug line");
или
log.debug(" " + "some silly debug line");
в зависимости от количества отступов перед строкой log.debug.
Я почти уверен, что магия Bash / shell может сделать это автоматически.
В основном я бы начал с:
find . -iname "*java" -exec ...
тогда я бы хотел вставить "" в строки, начинающиеся с log.debug, в зависимости от уровня отступа этих строк.
Как бы я поступил?
EDIT
Черт: он должен быть в состоянии запускаться несколько раз, без смещения строк, уже содержащих log.debug ("" +) . Все становится сложнее, но теперь, благодаря хорошему ответу, у меня есть с чего начать:)
Примечание : прежде чем кричать и стрелять, почему это не очень хорошая идея, прочитайте мой комментарий (ы)