стандартный вывод 'cat file' отличается от 'cat file> textfile' - PullRequest
1 голос
/ 17 апреля 2019

Когда я отслеживаю свои резервные данные aws (собранные с помощью $ (aws s3 sync >> logfile)), данные выглядят хорошо, когда я 'cat' файл, но если я 'grep yada yada | sed yada yada backup.log> newfile ', затем перенаправьте его на' mail 'или посмотрите на него' vi ', теперь в stdout отображаются дополнительные символы. Пример:

[от кошки к стандарту]

$ cat aws.tail.log
Starting aws backup Wed Apr 17 00:01:01 EDT 2019

upload: zim/Beer/.zim/state.conf to s3://...
upload: Documents/testfile to s3://...



Completed  aws backup Wed Apr 17 00:01:52 EDT 2019

[cat перенаправить в файл]

$ cat aws.tail.log > aws.email.txt
$ vi aws.email.txt  

here's what I see in vi:

Starting aws backup Wed Apr 17 00:01:01 EDT 2019
Completed 0 file(s) with ~0 file(s) remaining (calculating...)^M                                                              
Completed 2.5 KiB/~225.5 KiB (14.8 KiB/s) with ~3 file(s) remaining (calculating...)^Mupload: zim/Beer/.zim/state.conf to s3://
Completed 2.5 KiB/~225.5 KiB (14.8 KiB/s) with ~2 file(s) remaining (calculating...)^MCompleted 3.5 KiB/~225.5 KiB (3.5 KiB/s) with ~2 file(s) remaining (calculating...) ^Mupload: zim/Beer/h
ouse/tech/sterling/notifications.txt to s3://
Completed 226.1 KiB/~226.1 KiB (70.3 KiB/s) with ~0 file(s) remaining (calculating...)^M                                                                                      
Completed 0 file(s) with ~0 file(s) remaining (calculating...)^MCompleted 0 file(s) with ~0 file(s) remaining (calculating...)^MCompleted 0 file(s) with ~0 file(s) remaining (calculating...)
^MCompleted 0 file(s) with ~0 file(s) remaining (calculating...)^MCompleted 0 file(s) with ~0 file(s) remaining (calculating...)^MCompleted 0 file(s) with ~0 file(s) remaining (calculating..
.)^MCompleted 0 file(s) with ~0 file(s) remaining (calculating...)^MCompleted 0 file(s) with ~0 file(s) remaining (calculating...)^MCompleted 0 file(s) with ~0 file(s) remaining (calculating
...)^MCompleted 0 file(s) with ~0 file(s) remaining (calculating...)^M

Это также отображается в теле письма, когда я пишу с $ (cat daily_stats.txt | mail -s "subject" $ EMAIL), или также используя $ (mail -s "subject" $ EMAIL

Я попытался отфильтровать символы ^ M, но он делает только это. Также попробовал: sed -r "s / \ x1B [([0-9] {1,2} (; [0-9] {1,2})?)? [m | K] // g" а также perl -p -e 's / \ r // g'

и еще, дополнительные строки (Завершено 0 файлов), осталось ~ 0 файлов (вычисление ...) ^ M)

Кто-нибудь знает, как получить стандартный вывод из 'cat' в электронное письмо или текстовый файл без дополнительного джаза?

Спасибо!

1 Ответ

0 голосов
/ 17 апреля 2019

Это должно работать:

cat aws.tail.log | col -b > aws.email.txt

Я бы порекомендовал сообщить об ошибке в инструменте, пишущем этот журнал, об автоопределении нетерминала и не использовании управляющих символов.

...