Автор Тема: bash script  (Прочитано 2278 раз)

Оффлайн goshka

  • Завсегдатай
  • *
  • Сообщений: 114
    • Email
bash script
« : 23.12.2013 11:10:30 »
Добрый день.
Никак не получается на bash написать скрипт, заменяющий вывод tar -cvzf на строчку "распаковывается файл: bla-bla"

Чтобы строчка бежала на одной и той же строке.

sed не находит символов \n. Другие символы из исходных строк заменяет. Управляющие ESC тоже вставляются но не работают: последовательности печатаются как буквы. Ничего не получается. Пропадаю.

tar -xzvf 1.tar.gz  |  sed -r 's/\r/ \033[2K \r распаковывается файл:  /g'


Оффлайн goshka

  • Завсегдатай
  • *
  • Сообщений: 114
    • Email
Re: bash script
« Ответ #1 : 23.12.2013 12:11:09 »

tar -xzvf 1.tar.gz  |  sed -r 's/^/ распаковывается файл:  /g' | tar -d '\n'
Так работает, но вставка ESC последовательности типа \033[1m почему-то не отрабатывают...

tar -xzvf 1.tar.gz  |  sed -r 's/^/  \033[1m распаковывается файл:  \033[0m /g' | tar -d '\n'
Где собака порылась?
33[1m распаковывается файл:  33[0m 1.txt

Оффлайн goshka

  • Завсегдатай
  • *
  • Сообщений: 114
    • Email
Re: bash script
« Ответ #2 : 23.12.2013 13:53:15 »
Спасибо.

Кажется, если вместо \033 использовать \x1b,  разноцветные ESC последовательности стали работать:

tar -xzvf d.tar.gz   |    sed -r 's/^/\x1b[1m >распаковывается файл:                      \x1b[0m /g' #