Расширения параметров оболочки могут сделать это:
$ v="a_link_list_java"
$ printf "%s\n" "${v%_*}" "${v##*_}"
a_link_list
java
Обратите внимание, что если шаблоны в расширении не совпадают, ничего не удаляется. Таким образом, значение без подчеркивания не изменится при обоих преобразованиях :
.
$ v=foo
$ printf "%s\n" "${v%_*}" "${v##*_}"
foo
foo