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

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

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

1
задан 29 September 2014 в 21:33

2 ответа

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

$ var="abc_d_e75_f10_xyz_l_11"
$ echo "/home/userA/${var/_//}"
/home/userA/abc/d_e75_f10_xyz_l_11
0
ответ дан 24 May 2018 в 03:18
  • 1
    Но он хочет пренебрегать всем после четвертого поля f10. – Alaa Ali 29 September 2014 в 03:20

Вы хотите sed.

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

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

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

Это выглядит странно с помощью косых черт, но идея "s/search/replace/". И / нужно сбежать.

0
ответ дан 24 May 2018 в 03:18
  • 1
    он дает эту ошибку sed: -e expression #1, char 6: unknown option to s``, и я хочу пренебрегать всем после четвертого поля f10. – Tak 29 September 2014 в 03:24
  • 2
    Извините, забыл цитаты, обновил свой ответ – dan08 29 September 2014 в 03:30
  • 3
    хотите пренебречь всем после четвертого поля f10 – Tak 29 September 2014 в 03:33

Другие вопросы по тегам:

Похожие вопросы: