В тексте с линиями подобного формата:Перевести число до и после того, как `/`
3.1 Broadcasting 541/541,Black,notBold,notItalic,open,TopLeftZoom,0,0,0.0
3.2 Prefix Computation 590/590,Black,notBold,notItalic,open,TopLeftZoom,0,0,0.0
Я хотел бы перевести число до и после /
на определенную величину. Например, я woule хотел бы перевести число до /
по 1
, а число после /
по 2
и выше станут:
3.1 Broadcasting 542/543,Black,notBold,notItalic,open,TopLeftZoom,0,0,0.0
3.2 Prefix Computation 591/592,Black,notBold,notItalic,open,TopLeftZoom,0,0,0.0
Я пытаюсь сделать это с помощью awk
:
awk -F'[,/]' '{sub(/\//, " " ($2+1) "/"); sub($2, ($2+1)) }1
Но моя проблема в том, что я не могу уловить число до /
. Как мне улучшить свою команду?
Является ли awk правильным инструментом для этого? Или что-то другое?
Спасибо.
Спасибо. (1) Использует ли '{{{{{}} заместительную функцию? Что значит '. 'во втором' {} 'означает? что означает 'e'? (2) Можно ли это сделать аналогично в Python? – Tim
Спасибо. Я не использую perl, но только python. Может ли Python использоваться awk-способом, но также более мощным, чем awk? – Tim
@ Тим: По-моему, да и нет. Да, потому что это намного мощнее, чем 'awk', и Нет, потому что это более многословно и сложно адаптировать его как быстрое и грязное однострочное решение. – Birei