deptk
@deptk
админю потихоньку

Как удалить символ в выводе команды в Linux?

Есть вывод некой команды в Linux (весь вывод одна строка):
[ { " *тут кучка данных*", "Last Share Time": "0:01:05", "*и тут еще кучка* } ]

При чем "Last Share Time": "0:01:05", повторяется несколько раз в выводе.
Мне нужно из "0:01:05" сделать "00105".
Пытался сделать это через команду sed, смог только вот так: sed "s/[0-9]\{1\}:[0-9]\{2\}/BLABLABLA/g"
Т.е. заменил "0:01:05" целиком на "BLABLABLA"

Как удалить только двоеточие в этой конкретной последовательности "0:01:05"? Двоеточие в выводе встречается множество раз. "0:01:05" - это время, выведенное в виде строки
  • Вопрос задан
  • 4095 просмотров
Решения вопроса 1
sed -r 's/([0-9]):([0-9][0-9]):([0-9][0-9])/\1\2\3/'
Ответ написан
Пригласить эксперта
Ответы на вопрос 5
fzfx
@fzfx
18,5 дм
perl -pe 's/(\d{1,2}):(\d{1,2}):(\d{1,2})/\1\2\3/g'
Ответ написан
Комментировать
saboteur_kiev
@saboteur_kiev Куратор тега Linux
software engineer
Можно в awk на вашем примере. В качестве разделителя юзаю кавычки.
VAR='[ { " *тут кучка данных*", "Last Share Time": "0:01:05", "*и тут еще кучка*" } ]'

echo "$VAR"
echo "$VAR" | awk 'BEGIN{FS="\"";OFS="\""} {gsub(/:|\;/,"",$6)}1'
Ответ написан
Комментировать
Radjah
@Radjah
Я бы при помощи jq -r выбрал нужные поля, потом с помощью sed убрал ":".
Ответ написан
Комментировать
Radjah точно и еще у jq развитый синтаксис фильтров данных есть (надо смотреть на даные что именно выбрать)
Ответ написан
Комментировать
BEERsk
@BEERsk
Сфера интересов: Opensource, Linux, SQl, Python.
tr -d ":"
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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