Это кажется мне, Вы установили IDE с помощью конфетки и затем вошли в IDE для установки последних средств разработки Java. Если Вы устанавливаете Eclipse от системы управления пакета Вашего дистрибутива Linux, то необходимо установить средства разработки от этой системы также. Я уверен, что в конфетке существует пакет затмения-jdt. Зависимость, вероятно, от затмения-jdt до затмения, которое было сознательным решением, поскольку реверс является дополнительным.
Существует два решения, или придерживаются пакетов от Вашего IDE или загружают архив с веб-сайта затмения. Первая опция обеспечит стабильную среду, где все части сотрудничают приятно. Второе даст Вам последнюю (стабильную) версию всего, и Вы испытаете меньше затруднений из-за конфликтов как это, когда Вы добавите/установите компоненты изнутри IDE.
Должен это быть awk
? Намного легче на других языках, где сменная деталь замены может быть вызовом функции. Например, perl
:
perl -pe 'sub c{$s=shift;$s=~s/BAR|WIBBLE|ME/FOO/g;$s}s/\[.*?\]/c$&/ge'
С GNU awk Вы может установить RS
к содержанию скобок и затем делают замену на RT
(подобранный разделитель записей):
awk -v RS='\\[[^]]*\\]' '{ gsub(/\<(BAR|WIBBLE|ME)\>/, "FOO", RT); printf "%s%s", $0, RT }' infile
infile:
cat << EOF > infile
SHE GAVE ME THAT
SOMETHING [ME, WIBBLE, SOMMER]
EOF
вывод:
SHE GAVE ME THAT
SOMETHING [FOO, FOO, SOMMER]
Awk испытывает недостаток в обратных ссылках в заменах регулярного выражения, таким образом, он не может легко сделать замен в контексте. Sed может сделать это:
sed -e 's/\(\[[^]]*\)BAR/\1FOO/' 's/\(\[[^]]*\)ME/\1FOO/'
Если Ваш sed поддерживает чередование в regexps:
sed -e 's/\(\[[^]]*\)\(BAR\|ME\)/\1FOO/'
Это только обрабатывает единственную замену в каждой паре скобки, даже с g
суффикс, потому что [^]]*
соответствует самой длинной последовательности без закрывающих квадратных скобок. Для замены всех их используйте явный цикл; обратите внимание, что это только работает если FOO
не подстрока BAR
или ME
.
sed -e ': a' -e 's/\(\[[^]]*\)BAR/\1FOO/' -e 't a' \
-e 's/\(\[[^]]*\)ME/\1FOO/' -e 't a'
При необходимости в чем-то более сложном используйте жемчуг.
SOMETHING
должен быть. Я обновлю вопрос сделать это более ясным. – Chris 24.10.2012, 19:30