Вы можете взглянуть на эту процедуру для справки.
# yum history
Loaded plugins: fastestmirror
ID | Login user | Date and time | Action(s) | Altered
-------------------------------------------------------------------------------
68 | <p15119007g> | 2016-02-27 01:40 | I, U | 27
67 | <a15099004r> | 2016-02-25 03:05 | Install | 1
66 | <a15099004r> | 2015-12-28 05:39 | Install | 1
65 | <a15099004r> | 2015-12-18 03:53 | Update | 1
64 | <a15099004r> | 2015-12-18 03:53 | Update | 3 EE
Вы можете получить информацию с помощью этой команды
]# yum history info 67
Loaded plugins: fastestmirror
Transaction ID : 67
Begin time : Thu Feb 25 03:05:33 2016
Begin rpmdb : 490:72cf901a0f20ed46ebf4f2a1fbd5b59cde29cd80
End time : 03:05:38 2016 (5 seconds)
End rpmdb : 491:fa86b8767c48011cab7b19968339fc95b38f0475
User : <a15099004r>
Return-Code : Success
Command Line : install mlocate
Transaction performed with:
Installed rpm-4.8.0-47.el6.x86_64 @base
Installed yum-3.2.29-69.el6.centos.noarch @base
Installed yum-plugin-fastestmirror-1.1.30-30.el6.noarch @base
Packages Altered:
Install mlocate-0.22.2-6.el6.x86_64 @base
history info
undo
удалит установленный пакет
# yum history undo 2
Но это действительно работает. Правильный ответ, кажется, уже есть в вашем вопросе.
$ cat in.log
http://example.mx
https://test.com
http://4.3.4.4
http://dev.somedomain.com
http://1.3.4.2
$ cat in.log | sed '/^http:\/\/[0-9]/d' > out.log
$ cat out.log
http://example.mx
https://test.com
http://dev.somedomain.com
$
Если вы хотите удалить строки из in.log
, вы можете использовать флаг -i
для sed
:
sed -i '/^http:\/\/[0-9]/d' in.log
это уже работает, однако
/ ^ http: \ / \ / [0-9] /
будет соответствовать
http://1.hello.word
для соответствия "полному IP" используйте / ^ http: \ / \ / [0-9 \.] * $ /
где
[0-9 \.]
соответствует цифре и точке ... *
... 0 или более раз .. $
... до конца строки. Похоже, вы хотите удалить строки во входных данных.В дополнение к sed
есть очень простое решение, использующее grep -v
:
grep -v 'http://\([0-9]\+\.\)\{3\}[0-9]\+' in.log
Кроме того, здесь нет необходимости в cat
и трубе в любом случае: кот фу | bar
можно заменить на bar
grep
, либо sed
] без трубы.
Пуристы Shell обычно неодобрительно относятся к такому использованию cat
, потому что это необоснованно запускает отдельный процесс (и потому что цель cat
- обмануть cat enate файлы…).