У меня есть строка abc_d_e75_f10_xyz_l_11
. Я хочу разделить ее, чтобы построить строку из существующего каталога из этой строки до cd
.
Так что в этом примере abc_d_e75_f10_xyz_l_11
я хочу разделить, используя символ _
, где я хочу написать эту команду cd /home/userA/abc/d_e75_f10
и пренебречь остальной частью строки.
Можно сделать:
echo "abc_d_e75_f10_xyz_l_11" | sed 's/_/\//' | cut -d "_" -f1-3
Это заменит первое _
/
, а также обрежет строку.
Вывод:
abc/d_e75_f10
Можно использовать встроенные возможности обработки строк оболочки удара, например,
$ var="abc_d_e75_f10_xyz_l_11"
$ echo "/home/userA/${var/_//}"
/home/userA/abc/d_e75_f10_xyz_l_11
Вы хотите sed
.
sed
инструмент для выполнения поиска и операций замены на тексте.
В этом случае кажется, что Вы хотите заменить первое вхождение _
с /
.
Это сделает это: echo "abc_d_e75_f10_xyz_l_11" | sed "s/_/\//"
Это выглядит странным с наклонными чертами, но идея "s/search/replace/"
. И /
должен быть оставлен.