Скопировать файлы и заменить токен в имени файла?

Другой пример команды grep для выполнения того же самого:

$ grep -oE '[[:upper:]]{2}[[:digit:]]{8}\.HHF' the_log_file.log > hhf_list.txt

hhf_list. txt:

$ cat hhf_list.txt
MO994001.HHF
MO994002.HHF
TU994001.HHF

Как это работает

  • -o показывает только совпадающий текст, так как @chaos mentioned
  • -E использует расширенное регулярное выражение, поэтому можно набрать { и } (фигурные скобки), не экранируя их, по умолчанию grep потребовал бы написания \{ и \} для того же эффекта
  • Я предпочитаю POSIX-стиль [[...]

    : upper:]] [[:цифра:]], чтобы он, возможно, выделялся больше по сравнению со значениями {2} и {6}

  • именем файла с расширением . txt опционально, но помогает запомнить, что это текстовый файл, возможно, позже, если использовать excel на Windows-машине, может быть полезно
2
03.04.2018, 18:15
2 ответа

Вы можете сначала скопировать все xxx_*файлы, а затем использовать perl renameдля их переименования:

rename "s,^xxx,"$(basename $(pwd))"," *
-1
27.01.2020, 23:09

Можно использовать цикл for? Нравится

for file in../new_question_stub/*; do cp "$file" "003${file#*xxx}"; done

Возможно, вы захотите определить для этого функцию

0
27.01.2020, 23:09

Теги

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