Трудно сказать, что вы ищете, поскольку в описании ошибки, кажется, написано Описание ошибки . Это хранит его и идентифицирующий материал вокруг него:
sed 's/[_,][^:-]*:/ /g
' <<\IN
CreateOrder_hostname1.domain.com_201509291530_tee.log:2015-09-29 15:42:06,715:ERROR :Thread-26_CreateOrder: [1443555726715] Error description [system]: Method1
ScheduleOrder_hostname2.domain.com_201509291530_tee.log:2015-09-29 15:42:06,715:ERROR :Thread-26_ScheduleOrder: [1443555726715] Error description 2 [system]: Method2
ScheduleOrder_hostname2.domain.com_201509291530_tee.log:2015-09-29 15:42:06,715:ERROR :Thread-26_ScheduleOrder: [1443555726715] Error description 3 [system]: Method3
ShipOrder_hostname3.domain.com_201509291530_tee.log:2015-09-29 15:42:06,715:ERROR :Thread-26_ShipOrder: [1443555726715] Error description 4 [system]: Method4
IN
... который печатает ...
CreateOrder 2015-09-29 15:42:06 ERROR :Thread-26 [1443555726715] Error description [system]: Method1
ScheduleOrder 2015-09-29 15:42:06 ERROR :Thread-26 [1443555726715] Error description 2 [system]: Method2
ScheduleOrder 2015-09-29 15:42:06 ERROR :Thread-26 [1443555726715] Error description 3 [system]: Method3
ShipOrder 2015-09-29 15:42:06 ERROR :Thread-26 [1443555726715] Error description 4 [system]: Method4
Я не знаю, слишком ли это много или слишком мало, или даже на правильном пути. Я тоже поигрался с отбрасыванием коробок.
sed 's/[_,[][^]:-]*[]:]/ /g
' <<\IN
CreateOrder_hostname1.domain.com_201509291530_tee.log:2015-09-29 15:42:06,715:ERROR :Thread-26_CreateOrder: [1443555726715] Error description [system]: Method1
ScheduleOrder_hostname2.domain.com_201509291530_tee.log:2015-09-29 15:42:06,715:ERROR :Thread-26_ScheduleOrder: [1443555726715] Error description 2 [system]: Method2
ScheduleOrder_hostname2.domain.com_201509291530_tee.log:2015-09-29 15:42:06,715:ERROR :Thread-26_ScheduleOrder: [1443555726715] Error description 3 [system]: Method3
ShipOrder_hostname3.domain.com_201509291530_tee.log:2015-09-29 15:42:06,715:ERROR :Thread-26_ShipOrder: [1443555726715] Error description 4 [system]: Method4
IN
... это печатает ...
CreateOrder 2015-09-29 15:42:06 ERROR :Thread-26 Error description : Method1
ScheduleOrder 2015-09-29 15:42:06 ERROR :Thread-26 Error description 2 : Method2
ScheduleOrder 2015-09-29 15:42:06 ERROR :Thread-26 Error description 3 : Method3
ShipOrder 2015-09-29 15:42:06 ERROR :Thread-26 Error description 4 : Method4
... похоже, я бы хотела, наверное, посмотреть.
Здесь полностью отсутствует Описание , но, может быть, все еще рассказывается та же история? Имейте в виду, что довольно сложно сопоставить строку, которая, по вашему мнению, может быть чем угодно , и которая, похоже, также не служит какой-либо реальной цели. Во всяком случае, это тоже весело.
sed 's/[_,][^-]*[^ ]:/ /g
' <<\IN
CreateOrder_hostname1.domain.com_201509291530_tee.log:2015-09-29 15:42:06,715:ERROR :Thread-26_CreateOrder: [1443555726715] Error description [system]: Method1
ScheduleOrder_hostname2.domain.com_201509291530_tee.log:2015-09-29 15:42:06,715:ERROR :Thread-26_ScheduleOrder: [1443555726715] Error description 2 [system]: Method2
ScheduleOrder_hostname2.domain.com_201509291530_tee.log:2015-09-29 15:42:06,715:ERROR :Thread-26_ScheduleOrder: [1443555726715] Error description 3 [system]: Method3
ShipOrder_hostname3.domain.com_201509291530_tee.log:2015-09-29 15:42:06,715:ERROR :Thread-26_ShipOrder: [1443555726715] Error description 4 [system]: Method4
IN
CreateOrder 2015-09-29 15:42:06 ERROR :Thread-26 Method1
ScheduleOrder 2015-09-29 15:42:06 ERROR :Thread-26 Method2
ScheduleOrder 2015-09-29 15:42:06 ERROR :Thread-26 Method3
ShipOrder 2015-09-29 15:42:06 ERROR :Thread-26 Method4
Tar puede usar comodines en sí mismo
tar tzvf./foo_tar/bar.tar.gz --wildcards '*/baz*'
Ej.:
$ filename_in_question=$(tar tvf test.tar --wildcards '*/received_10205861111464136.mp4')
$ echo $filename_in_question
-rwxr-xr-x ghp/ghp 1931930 2017-11-04 10:36./Marieanne/Messenger/received_10205861111464136.mp4
$ echo ${filename_in_question/*\//}
received_10205861111464136.mp4
find
solo busca archivos que existen en la jerarquía de directorios, no aquellos almacenados dentro de los archivos. Puede enumerar los archivos contar -t
:
tar -ztf./foo_tar/bar.tar.gz --wildcards --no-anchored 'baz*'
--wildcards
permite que *
se interprete como un comodín, y --no-anchored
permite que el nombre del archivo coincida después de cualquier /
(, por lo que aún se encontrará si está en un subdirectorio en el archivo ).
La coincidencia de patrones -en tar
no es tan flexible como en find
. Para el tipo de patrón que describe, podría filtrar el contenido completo a través degrep
:
tar -ztf./foo_tar/bar.tar.gz | grep '\(^\|/\)baz[0-9]\+_'
Como desea guardar el resultado en una variable, también debe encerrar el comando usando Sustitución de comando:
filename_in_question=$(tar -ztf./foo_tar/bar.tar.gz | grep '\(^\|/\)baz[0-9]\+_')
Esto aún sería necesario si estuviera usando find
.
Necesita una implementación tar con -integrado enlibfind
:
star -t -f./foo_tar/bar.tar.gz -find -name 'baz*'
funcionará como esperas y puede hacer mucho más.
Compruebe la bola de alquitrán de schilytools:http://sourceforge.net/projects/schilytools/files/
star
es la implementación de alquitrán libre más antigua. Ver página Man: