Удаление символов из строки

Настройте запись таблицы cron с расписанием @reboot для удаления и/или повторного создания рассматриваемых каталогов.

0
23.06.2017, 18:48
3 ответа

В bash вы могли считывать значения, разделенные пробелами -, в массив, а затем расширять элементы массива с заменой параметров, которая удаляет начальные символы:

read -a vals <<< '3104.302279 3104.302329 3104.302829 3104.302829 3104.303206 3104.303130 3104.303175 3104.303398 3104.303315 3104.303420 3104.303485 3104.303479 3104.303513 3104.303518 3104.302973 3104.303185 3104.303349 3104.303398 3104.303518 3104.303518 3104.303503 3104.303519 3104.303519 3104.303130 3104.303521 3104.303521 3104.303521 3104.303185 3104.303185 3104.303185 3104.303185 3104.303185 3104.303185 3104.303185 3104.303185 3104.303185 3104.303185 3104.303523 3104.303185 3104.303185 3104.303175 3104.303185 3104.303523 3104.303522 3104.303185 3104.303185 3104.303420 3104.303185 3104.303185 3104.303185 3104.303526 3104.303185 3104.303185 3104.303185 3104.303185 3104.303185 3104.303527 3104.303525 3104.303525 3104.303479 3104.303315 3104.303315 3104.303315 3104.303315 3104.303315'

var="${vals[@]#*.}"

echo "$var"
302279 302329 302829 302829 303206 303130 303175 303398 303315 303420 303485 303479 303513 303518 302973 303185 303349 303398 303518 303518 303503 303519 303519 303130 303521 303521 303521 303185 303185 303185 303185 303185 303185 303185 303185 303185 303185 303523 303185 303185 303175 303185 303523 303522 303185 303185 303420 303185 303185 303185 303526 303185 303185 303185 303185 303185 303527 303525 303525 303479 303315 303315 303315 303315 303315
1
28.01.2020, 02:19
MYVAR=`sed -E 's/[0-9]+.([0-9]+)/\1/g' stringfile`
1
28.01.2020, 02:19

Если var a — это весь список чисел:

$ a='3104.302279 3104.302329 3104.302829 3104.302829 3104.303206 3104.303130 3104.303175 3104.303398 3104.303315 3104.303420 3104.303485 3104.303479 3104.303513 3104.303518 3104.302973 3104.303185 3104.303349 3104.303398 3104.303518 3104.303518 3104.303503 3104.303519 3104.303519 3104.303130 3104.303521 3104.303521 3104.303521 3104.303185 3104.303185 3104.303185 3104.303185 3104.303185 3104.303185 3104.303185 3104.303185 3104.303185 3104.303185 3104.303523 3104.303185 3104.303185 3104.303175 3104.303185 3104.303523 3104.303522 3104.303185 3104.303185 3104.303420 3104.303185 3104.303185 3104.303185 3104.303526 3104.303185 3104.303185 3104.303185 3104.303185 3104.303185 3104.303527 3104.303525 3104.303525 3104.303479 3104.303315 3104.303315 3104.303315 3104.303315 3104.303315'

Затем мы можем сделать b массивом чисел из a:

$ b=( $a )

И выведите все b элементов без ведущего целого числа (перед точкой):

$ printf '%s ' "${b[@]#*.}"
302279 302329 302829 302829 303206 303130 303175 303398 303315 303420 303485 303479 303513 303518 302973 303185 303349 303398 303518 303518 303503 303519 303519 303130 303521 303521 303521 303185 303185 303185 303185 303185 303185 303185 303185 303185 303185 303523 303185 303185 303175 303185 303523 303522 303185 303185 303420 303185 303185 303185 303526 303185 303185 303185 303185 303185 303527 303525 303525 303479 303315 303315 303315 303315 303315

И назначьте его какой-нибудь другой переменной c (как bash, я буду использовать printf -v):

$ printf -v c '%s ' "${b[@]#*.}"

Вот именно,$c будет содержать список (разделенный пробелом ).

1
28.01.2020, 02:19

Теги

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