Как переименовать каталог определенным образом.BASH - PullRequest
0 голосов
/ 07 июня 2019

У меня есть каталог с именем 20190606_151020 .Я хочу переименовать его в files_2019-06-06_15-10-20 .В будущем я не буду знать имя текущего каталога, но это будет единственный каталог, и я также знаю, что мне нужно сделать префикс files_ , а после 2019 быть - .

Как я могу сделать это в скрипте BASH?

Я очень плохо работаю со строками в bash: (

Ответы [ 2 ]

0 голосов
/ 07 июня 2019

Вы имеете в виду что-то вроде этого?

#!/bin/bash

# find the special directory
name="$(find . -type d -printf %P)"

# split name into parts
year="${name:0:4}"
month="${name:4:2}"
day="${name:6:2}"
hour="${name:9:2}"
min="${name:11:2}"
sec="${name:13:2}"

# rename directory
mv "$name" "files_${year}-${month}-${day}_${hour}-${min}-${sec}"

использование

Перейдите в тот каталог, где существует ваш специальный каталог, и начните сценарий.

0 голосов
/ 07 июня 2019

Вы получите желаемый результат, используя awk.

echo "20190606_151020" | awk 'BEGIN{FIELDWIDTHS="4 2 2 3 2 2"}{print "file_"$1"-"$2"-"$3$4"-"$5"-"$6}'

The sample output is shown below

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...