Извлечение последних десяти символов строки (например, имени файла) внутри расширения параметра

Вы можете попробовать это. Это напечатает единственный экземпляр topс фиксированной шириной и выходами, чтобы вы могли получить вывод.

top -n1 -w80

Вы даже можете направить вывод в файл.

top -n1 -w80 > top_output.txt
0
27.02.2020, 19:45
1 ответ
file=abcdefghijklm
echo ${file: -10}
defghijklm

Пробел после двоеточия требуется, чтобы отличить это расширение параметра от разновидности ${var:-default}.


Использование второй переменной:

$ tmp=${file%.*}; echo "${tmp:(-10)}"
1234567890

Использование регулярного выражения:

$ [[ $file =~ (.{10})(\.[^.]*)?$ ]] && echo "${BASH_REMATCH[1]}"
1234567890
2
28.04.2021, 23:22

Теги

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