У меня возникли проблемы с работой SED.sed не заменяет некоторые пробелы
входного файла:
$ cat txt
# nasty comment
blah blah blah this line is invalid
; this also isn't right
foo = 23 # comment here
blah=76876.8768 -- fubar
yoyo=76
tab_moo = -45.99
// comment
fubar = baz
#dfgpo=sf
####
Теперь, как я анализирую его:
$ cat txt | sed -r 's/(#|--|;|\/\/).*//' | grep '=' | sed -r 's/[[:blank:]]+//'
foo= 23
blah=76876.8768
yoyo=76
tab_moo = -45.99
fubar= baz
Цель состоит в том, чтобы удалить все комментарии и все встроенные пробелы.
Я не понимаю, почему на выходе остались некоторые пробелы. Что я делаю не так?
Незначительное примечание, '-r' - это GNUism. Если вы измените его на '-E', он будет работать как для GNU, так и для версий, отличных от GNU' sed' (например, BSD, Macs и т. Д.). –