2015-03-17 4 views
0

Извлечение строки между двумя/справаИзвлечение строки между двумя/справа

подготовки команды:

Входной сигнал: - [Каталоги имя не постоянна]

Пример 1: -

/dir1/dir2/ 

Пример 2: -

/dir1/dir2/dir3/dir4/ 

Хочу вывода, как показано ниже

Пример 1. Выход: -

nohup dsmc arch /dir1/dir2/ -subdir=yes > /tsm/backuplogs/dir2_`date +%d%m%y_%H_%M`.log & 

Пример 2 Выход: -

nohup dsmc arch /dir1/dir2/dir3/dir4/ -subdir=yes > /tsm/backuplogs/dir4_`date +%d%m%y_%H_%M`.log & 

ответ

3

Используйте basename программа е Xtract последний реж из ваших путей, как это:

path=/dir1/dir2/dir3/dir4/ 
echo "nohup dsmc arch $path -subdir=yes > /tsm/backuplogs/$(basename $path)_\`date +%d%m%y_%H_%M\`.log &" 

выше линии будет:

nohup dsmc arch /dir1/dir2/dir3/dir4/ -subdir=yes > /tsm/backuplogs/dir4_`date +%d%m%y_%H_%M`.log & 
+0

Вы должны избегать использования старых и устаревших обратно-тики, используйте круглые скобки, как это: '_ \ $ (дата +% d% м% y_% Н-% M \). log' – Jotne

4

Попробуйте извлечь подстроку:

basename /dir1/dir2/dir3/dir4/ 

Выход:

 
dir4 

С Баш встроенных команд:

string="/dir1/dir2/dir3/dir4/" 
string="${string%/*}"   # remove trailing/
echo "${string##*/}"   # remove /dir1/dir2/dir3/ 

Выходные

 
dir4 
Смежные вопросы