Вы смотрели на инструмент наверху? Согласно странице руководства для этого:
«Сетевая нагрузка отображается для каждого процесса, если модуль ядра` netatop 'был установлен ».
sed
подстановка ищет экземпляры (все экземпляры, поскольку вы используете g
), соответствующие первому аргументу, и заменяет полное совпадение вторым аргументом. Таким образом, если вы включите "AIR" в первый аргумент, он будет заменен - вам нужно включить его во второй аргумент, если вы хотите сохранить его. Когда sed
жалуется на недопустимую ссылку, это означает, что вы не определили соответствующую группу в первом аргументе (используя \(
и \)
, или (
и )
, поскольку вы указали -r
).
Поскольку вы ищете "AIR", за которым следуют любые символы, сопровождаемые цифрами, я бы предложил следующее:
sed -r 's/AIR([^[:digit:]]*)([[:digit:]]+).jpg/AIRtest\2.jpg/g'
Это заменяет "AIR" на "AIR", любые нецифры на "test", и сохраняет все последующие цифры. Если вам не нужно обрабатывать символы между "AIR" и цифрами, вы можете игнорировать их:
sed -r 's/AIR[^[:digit:]]*([[:digit:]]+).jpg/AIRtest\1.jpg/g'
Если у вас есть Perl rename
, вы можете транспонировать его для переименования ваших файлов:
rename 's/AIR[^[:digit:]]*([[:digit:]]+).jpg/AIRtest\1.jpg/g' AIR*.jpg
или
rename 's/AIR[^[:digit:]]*([[:digit:]]+).jpg/AIRtest$1.jpg/g' AIR*.jpg
(rename
предпочитает $
для групповых ссылок).