удалить последние два символа из каждой строки [дубликат]

[ "$1" != "${1#/}" ] || return 1

Возможно, есть лучший способ (поэтому я и спросил). Этот код отсекает все ведущие / в $1 и проверяет, что результат не такой же, как $1.

5
17.08.2017, 02:45
3 ответа
sed 's/..$//' < input > output
13
27.01.2020, 20:35

Расширение параметров оболочкии использование синтаксиса удаления подстроки ${parameter%word}/Substring Expansion ${parameter:offset:length}.

"${line%??}"    # strip the shortest suffix pattern match the word 
"${line::-2}"   # strip last 2 characters (`bash 4.2` and above)
"${line: : -2}" # in older you could add spaces between OR
"${line::${#line}-2}"
1
27.01.2020, 20:35

Использование опции grepи просмотра -вперед (PCRE):

grep -Po '.*(?=..$)'
0
27.01.2020, 20:35

Теги

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