Как переименовать файл без метки времени в конце

Обзор

Хотя вы можете использовать airmon-ngдля перевода интерфейса в режим монитора, вы также можете сделать это с помощью iwconfig. Убедитесь, что у вас есть привилегии root!

Переведите wlan0 в режим мониторинга:

ifconfig wlan0 down

iwconfig wlan0 mode monitor

ifconfig wlan0 up

Убить процесс, который может помешать:

airmon-ng check kill

Теперь вы можете запустить сканирование airodump-ngс интерфейсом в режиме монитора, выполнив командуairodump-ng wlan0

Вернуть интерфейс в управляемый режим после завершения:

ifconfig wlan0 down

iwconfig wlan0 mode managed

ifconfig wlan0 up

service network-manager restart
0
17.09.2019, 10:20
2 ответа

Я собираюсь ответить на этот вопрос, используя мощную Perl-программу регулярных -выражений prename, установленную вместе с Perl 5. 1

Запустите эту команду в каталоге, содержащем ваши файлы:

prename -v 's/_\d\d[A-Za-z]+\d\d\d\d_\d\d:\d\d:\d\d((\.[^.]*)?)$/$1/g' *

Вы можете изменить*в конце команды на список файлов, которые вы хотите переименовать (, если вы хотите переименовать только некоторые из них ).

Перевод

Переименуйте все файлы в текущем каталоге, :удалив " символ подчеркивания -, за которым следуют 2 цифры -, за которыми следует один или несколько символов английского алфавита -, за которыми следуют 4 цифры -, за которыми следует подчеркивание -, за которыми следуют 2 цифры -, за которыми следует двоеточие -, за которыми следуют 2 цифры -, за которыми следует двоеточие -, за которыми следуют 2 цифры-", ЧТО НАХОДИТСЯ непосредственно перед расширением файла (или концом имени файла, если у него нет расширения ).

Примечания

  • Вы можете изменить параметр -vна -n, если хотите сначала увидеть, как вещи будут переименованы (без их фактического переименования ).
  • Ваши примеры, если бы они находились в одном и том же каталоге, привели бы к конфликту имен файлов.(См. ниже)
  • Если имя вновь переименованного файла конфликтует с другим существующим файлом или ранее переименованным именем файла в процессе; prenameвыведет предупреждение, и указанный файл останется без имени. (Другие более поздние файлы, не затронутые этой проблемой, по-прежнему будут переименовываться)
  • Имейте в виду, что нет команды для удаления общей «даты» в конце имен файлов;слишком много форматов дат и разделителей; применение неправильного формата даты при переименовании также приведет к беспорядку. Команда, которую я дал, применяется только к разделителю даты имени файла -, формату даты и разделителю расширения даты -, которые можно увидеть в ваших примерах. См. перевод выше для точных деталей.
  • Я тестировал это на Debian GNU/Linux 7.0 "Wheezy" i386 (с Perl 5.14.2)

П.С. Обязательный комикс:"Перл на помощь!" (также известный как XKCD #208 " Регулярные выражения ")


1 В некоторых системах, таких как моя, это также программа, которая запускается при вызове rename. Однако это не то же самое, что и утилита util -linux, упомянутая в комментарии @Philippos. Запустив man renameи прокрутив вниз, вы узнаете, было ли это из Perl или из утилиты -linux.

1
28.01.2020, 03:16

Я бы использовал комбинацию ls/ find, sedи sh.

ls |sed -E '/TEST_API_CICD/{s!^(.*TEST_API_CICD)_........._..:..:..(\.json)$!mv -i "&" "\1\2"!;p};d'

Первая часть между /с представляет собой шаблон для выбора файлов для переименования. Части в круглых скобках — это те части, которые нужно сохранить, объединенные вместе как новое имя файла с \1\2\3.... Шаблон , а не в круглых скобках, является той частью, которую необходимо удалить..(точка )— любой символ (, подобный ?в выражениях глобуса ). .равно нулю или более любых символов (подобно в выражениях глобуса ). ^и $закрепляют шаблон в начале и в конце, так что все символы совпадают.

Проверьте результат (с помощью |moreили |less, или даже |grep..., чтобы найти странности ), и, если он выглядит нормально, запустите его с помощью |sh.

-1
28.01.2020, 03:16

Теги

Похожие вопросы