У меня есть этот файл: 1.txt
===================================================================
File: .cvsignore Status: Up-to-date
Working revision: 1.1 Thu Jan 16 11:00:00 2020
Repository revision: 1.1 /usr/local/rancid/var/CVS/Routers/.cvsignore,v
Sticky Tag: (none)
Sticky Date: (none)
Sticky Options: (none)
===================================================================
File: router.db Status: Up-to-date
Working revision: 1.6 Fri Jan 17 11:57:39 2020
Repository revision: 1.6 /usr/local/rancid/var/CVS/Routers/router.db,v
Sticky Tag: (none)
Sticky Date: (none)
Sticky Options: (none)
===================================================================
File: .cvsignore Status: Up-to-date
Working revision: 1.1 Thu Jan 16 11:00:00 2020
Repository revision: 1.1 /usr/local/rancid/var/CVS/Routers/configs/.cvsignore,v
Sticky Tag: (none)
Sticky Date: (none)
Sticky Options: (none)
===================================================================
===================================================================
File: 1.1.1.1 Status: Up-to-date
Working revision: 1.2 Fri Jan 17 07:56:21 2020
Repository revision: 1.2 /usr/local/rancid/var/CVS/Routers/configs/1.1.1.1,v
Sticky Tag: (none)
Sticky Date: (none)
Sticky Options: -ko
Я хочу извлечь строку между File:
и Status:
(.cvsignore, router.db, 1.1.1.1)
и между Repository revision:
и /usr/local/rancid/
(1.1, 1.6, 1.1)
, поэтому окончательный результат должен быть:
.cvsignore 1.1
router.db 1.6
.cvsignore 1.1
1.1.1.1 1.2
для имени файла я создал следующий фильтр:
sed 's/^.*File: //; s/Status:.*$//' 1.txt
Вывод:
===================================================================
.cvsignore
Working revision: 1.1 Thu Jan 16 11:00:00 2020
Repository revision: 1.1 /usr/local/rancid/var/CVS/Routers/.cvsignore,v
Sticky Tag: (none)
Sticky Date: (none)
Sticky Options: (none)
===================================================================
router.db
Working revision: 1.6 Fri Jan 17 11:57:39 2020
Repository revision: 1.6 /usr/local/rancid/var/CVS/Routers/router.db,v
Sticky Tag: (none)
Sticky Date: (none)
Sticky Options: (none)
===================================================================
.cvsignore
Working revision: 1.1 Thu Jan 16 11:00:00 2020
Repository revision: 1.1 /usr/local/rancid/var/CVS/Routers/configs/.cvsignore,v
Sticky Tag: (none)
Sticky Date: (none)
Sticky Options: (none)
===================================================================
1.1.1.1
Working revision: 1.2 Fri Jan 17 07:56:21 2020
Repository revision: 1.2 /usr/local/rancid/var/CVS/Routers/configs/172.18.1.24,v
Sticky Tag: (none)
Sticky Date: (none)
Sticky Options: -ko
===================================================================
Для ревизии репозитория я пытаюсь
sed 's/^.'*Repository revision:' //; s#usr#local#rancid:.*$//' 1.txt
Но получаю
sed: -e expression #1, char 15: unterminated `s' command
Мне нужно одно регулярное выражение для filename
и второе для Repository revision