Удаление шаблонов из строки с помощью bash

Я пытаюсь удалить некоторые шаблоны из строки ввода файла (разбор строки по строке). Вот пример строки:

1: (10/17 12:49:31.175) - CONSTANT ID1 - CONSTANT ID2: RAW DATA OUT > [0x00,0xa2,…,0x00] 

И я хочу, чтобы результат был примерно следующим:

 (12:49:31.175): RAW DATA OUT : [0x00,0xa2,…,0x00] 

Я пытаюсь использовать egrep или sed но пока не повезло, просто продолжайте получать ошибки или некоторую ошибку «unterminited substitute pattern». Вот и пример того, что я пробовал:

 echo $line | sed -e 's/.*\s\([0-9]*:[0-9]*:[0-9]*.[0-9]*\)' 

Любая помощь будет оценена по достоинству. Я обычно больше парень пакетного файла вместо bash на моей Mac OS / X.

РЕДАКТИРОВАТЬ:

Должен заметить, я читаю файл как таковой:

 while read line do 

Затем я хочу выполнить любые действия в line для каждой строки в файле.

3 Solutions collect form web for “Удаление шаблонов из строки с помощью bash”

Вы также можете вызвать perl из bash . Параметр -n arg делает цикл для каждой строки. -e означает, что скрипт является одной строкой.

 cat in.txt | perl -ne 's{.*(.*\().*? (.*) -.*(:.*?)\s\s+.*(\[.*)}{$1$2$3 : $4};' 

Это работает в вашей строке ввода:

  sed 's/.* \([0-9].*)\) .*>/(\1: RAW DATA OUT:/ ' <<\DATA 1: (10/17 12:49:31.175) - CONSTANT ID1 - CONSTANT ID2: RAW DATA OUT > [0x00,0xa2,…,0x00] DATA 

Он печатает:

 (12:49:31.175): RAW DATA OUT : [0x00,0xa2,…,0x00] 
 sed ' s/^[^(]*// s/([^ ]\+ /(/ s/ - CONSTANT ID// s/ \+>/ :/ ' <<DATA 1: (10/17 12:49:31.175) - CONSTANT ID: RAW DATA OUT > [0x00,0xa2,…,0x00] DATA 
 (12:49:31.175): RAW DATA OUT : [0x00,0xa2,…,0x00] 

Новые строки в сценарии sed могут быть заменены точкой с запятой, если вы предпочитаете


В замкнутом цикле:

 while read line; do echo "$line" | sed 's/^[^(]*//; s/([^ ]\+ /(/; s/ - CONSTANT ID//; s/ \+>/ :/' done < filename 
  • Безопасно ли удалить файл сценария из этого скрипта?
  • Создание скрипта sh в программе
  • tr -c '' '\ n' не заменяет всех символов дополнения
  • Bash один вкладыш для изменения параметров конфигурации
  • Сохранять значения глобальных переменных через функции
  • Как искать и заменять текст во всех php-файлах в каталоге и в его подкаталогах
  • Эхо-вывод результатов в неустойчивом порядке в BASH
  • Создание и экспорт / импорт переменной с awk?
  • Как выбрать наивысший элемент числа во многих файлах со многими массивами
  • Cronjob запускает скрипт, который вызывает другой скрипт
  • Как вы завершаете исполняемые команды, чтобы они работали в псевдониме или функции?
  • Linux и Unix - лучшая ОС в мире.