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