, Как использовать Сценарий Удара, чтобы переместить и переименовать файлы с grep

[^ /] + $ - это регулярное выражение для «Один или несколько любых символов, не являющихся слэш, за которым следует конец проверяемой строки ". Проверяемая строка: /root/Source/code/script.sh ; часть этой строки, которая соответствует шаблону, - это script.sh . grep -o возвращает только совпавший шаблон, а не всю совпавшую строку.

0
11.01.2019, 03:27
1 ответ

grepпо отдельности и замена мне не кажутся полезной комбинацией. Как вы относитесь к sed?

$ ls *pdf
Guide to Iceland _ Chen-ping Wang itinerary T-987654987.pdf
Guide to Iceland _ T-123654875 Chen-ping Wang itinerary.pdf

А затем небольшой цикл for вbash:

$ for i in *pdf; do mv "$i" "$( echo $i |  sed -r  's/^(.*)(T-[0-9]{9})(.+)$/\2 - \1\3/'  )"; done

Это перебирает все PDF-файлы в текущем каталоге; сохраняет свое имя в $iдля каждой итерации, выводит содержимое через sed (и использует его вывод в качестве целиmv). sedразбивает имя файла -на три части и переставляет их. Я рекомендую заменить mvна echo mvдля тестирования:)

Что дает нам:

$ ls *pdf
T-123654875 - Guide to Iceland _  Chen-ping Wang itinerary.pdf
T-987654987 - Guide to Iceland _ Chen-ping Wang itinerary.pdf
1
28.01.2020, 02:41

Теги

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