здесь У меня есть часть моего awk-кода для анализа файла, но вывод не на 100%, что я хочу.Что делает этот код? (awk)
match($0,/root=[^,]*/){
n=split(substr($0,RSTART+5,RLENGTH-5),N,/:/)
Моя проблема в том, что я не могу сказать на 100%, что этот кусок кода именно делает ... Может кто-то просто сказать мне, что эти две строчки точно делать?
EDIT: Я просто хочу знать, что делает код, поэтому я могу исправить это самостоятельно, поэтому, пожалуйста, не спрашивайте что-то вроде: как выглядит файл, который вы разбираете? ..
спасибо, отличный ответ, но что изменилось, когда можно сказать, что я устанавливаю RSTART на +10 и RLENGTH до -10? – howdoesthiswork
От 'man awk' -> Индекс первого символа, совпадающего с match(); 0, если нет совпадения. (Это означает, что индексы символов начинаются с одного.) – fedorqui
@howdoesthiswork Присвоить им эти значения или изменить смещения этими значениями? Я собираюсь предположить, что вы имеете в виду изменение смещений. В этом случае результат из 'substr' будет только начинаться с пяти символов в строке соответствия. Попробуйте и узнайте.'print substr ($ 0, RSTART + 10, RLENGTH-10) ' –