Разделить строку с определенным символом, чтобы сформировать путь

У меня есть строка abc_d_e75_f10_xyz_l_11 Я хочу разделить его так, чтобы я хотел построить строку существующего каталога из этой строки в cd к этому.

Так что в этом примере abc_d_e75_f10_xyz_l_11 Я хочу разделить с помощью _ персонаж, где я хочу написать эту команду cd /home/userA/abc/d_e75_f10 и пренебречь остальной частью строки.

3 ответа

Решение

Ты можешь сделать:

echo "abc_d_e75_f10_xyz_l_11" | sed 's/_/\//' | cut -d "_" -f1-3

Это заменит первый _ с / а также обрезать строку.

Выход:

abc/d_e75_f10

Ты хочешь sed,

sed это инструмент для выполнения операций поиска и замены текста.

В этом случае кажется, что вы хотите заменить первое вхождение _ с /,

Это сделает это: echo "abc_d_e75_f10_xyz_l_11" | sed "s/_/\//"

С косыми чертами выглядит странно, но идея "s/search/replace/", А также / должен быть сбежал.

Вы можете использовать встроенные в оболочку bash возможности для работы со строками, например:

$ var="abc_d_e75_f10_xyz_l_11"
$ echo "/home/userA/${var/_//}"
/home/userA/abc/d_e75_f10_xyz_l_11
Другие вопросы по тегам