Разделить строку с определенным символом, чтобы сформировать путь
У меня есть строка 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