Как заменить многострочные -комментарии однострочными -комментариями в файле Java с помощью sed?

Мое текущее решение (для достаточно последних версий Python 3 )запрещает использование по умолчанию истории ~/.python _, но оставляет возможность явной записи истории в заданный файл (использование readline.write _history _file (имя файла )или readline.append _history _file (... ))должно иметь следующее в файле PYTHONSTARTUP:

import readline
import time

readline.add_history("# " + time.asctime()) # prevent default use of ~/.python_history
readline.set_history_length(-1) # unlimited

У него есть приятный (для меня )побочный эффект, помечающий любую явно записанную историю временем запуска интерпретатора. Это работает благодаря исправлению ошибки 5845 , которую можно увидеть здесь .

0
19.05.2021, 11:19
2 ответа

Так и будет:

sed 's_/\*\(.*\)\*/_//\1_' <Test.java

Это работает следующим образом:

  • Я использую _в качестве разделителя, поэтому мне не нужно экранировать /символы
  • '/ *' соответствует/\*(экранированию*)
  • Я помню что-то между вышеперечисленным, используя \(и\)
  • затем замените на '//' (не нужно экранировать )и запомненное содержимое\1

Убедившись, что он делает то, что вам нужно, просто добавьте -iи удалите<:

sed -i 's_/\*\(.*\)\*/_//\1_' Test.java
1
28.07.2021, 11:31

Я подозреваю, что ваш второй пункт должен был быть:

'/*' is matched with /\* (escaping the *) and '*/' is matched with \*/
0
28.07.2021, 11:31

Теги

Похожие вопросы