awk
может сделать это, но это не является прямым, даже с помощью backreferencing.
GNU awk имеет (частичный) backreferecing, в форме gensub.
Экземпляры 123"
временно перенесены в \x01
и \x02
отметить их, как не изменено (для sub()
. co
Или Вы могли просто ступить через кандидатов изменения цикла, когда Вы идете, в этом случае, backreferencing и "скобки" не необходимы; но отслеживание индекса символа необходимо.
awk '{$0=gensub(/([0-9]+)\"/, "\x01\\1\"\x02", "g", $0 )
while ( match($0, /\x01[0-9]+\"\x02/) ) {
temp=substr( $0, RSTART, RLENGTH )
numb=substr( temp, 2, RLENGTH-3 ) + 11
sub( /\x01[0-9]+\"\x02/, numb "\"" )
} print }'
Вот иначе, с помощью gensub
и массив split
и \x01
как разделитель полей (для разделения).. \x02 отмечает элемент массива как кандидата на арифметическое дополнение.
awk 'BEGIN{ ORS="" } {
$0=gensub(/([0-9]+)\"/, "\x01\x02\\1\x01\"", "g", $0 )
split( $0, a, "\x01" )
for (i=0; i
alternatives --install /usr/bin/make make /usr/bin/make-3.82 10
для делают. Я использовал 10 в качестве приоритета сделать это более низким приоритетом, чем следующий шаг.alternatives --install /usr/bin/make make /usr/local/make-3.81/bin/make 20
(принятие Вас установило его в/usr/local/make-3.81). заметьте, что я использовал более высокий приоритет, 20.alternatives --display make
видеть, что используется.
alternatives
система является, вероятно, не лучшим решением этой проблемы. Вы могли бы извлечь выгоду из Модулей Среды (modules.sourceforge.net), или просто вручную установка старого делает в Вашем ПУТИ или Make-файле. – jsbillings 17.02.2011, 19:26