Bash - Убрать последний символ в тексте?

Попрошу ещё одной помощи. Есть файл, в котором есть список:

hsdfkjhsdkfj
sdjfhksdjfhkjsdf
sdjfhskdjfhksdf
sdjfhskdfhksdf
sdfjhskdhfksdf.

из него надо просто удалить последний символ в последней строке

hsdfkjhsdkfj
sdjfhksdjfhkjsdf
sdjfhskdjfhksdf
sdjfhskdfhksdf
sdfjhskdhfksdf

(т.е. в данном случае точку). Символ всегда один, но всегда разный. Поможете? :umnik: :blush2:

В последней именно строке или каждой строке?

Именно в самой последней… Кол-во строк тоже может быть разное…


cat ./data.txt | sed 's/.$//'

Можно решить при помощи awk:

awk -v nol=$(cat filename | wc -l) '{if ( NR != nol) print $0; else print substr($0, 1, (length($0) - 1))}' filename
2 Likes