Если у вас есть awk
, вы можете:
awk '/foo/{print b$0;b="";x=1;next} x{b=b$0"\n"}' bar.log | less
Когда появляется foo
, он печатает буфер ( b
переменная) и текущую строку и очищает буфер.
В противном случае, но только если foo
уже появился (переменная x
), текущая строка буферизуется.
Пользовательский скрипт дерева treeify.py , созданный Hakril, помог бы красиво распечатать содержимое tgz без извлечения
[root@bastion ~]# wget https://bitbucket.org/Hakril/treeify/raw/8e732368f64d30ffc4033cbc890164fdf296d9f8/treeify.py
[root@bastion ~]# tar -tvf neo4j-enterprise.tar.gz | python treeify.py
.
├─ drwxrwxrwx root
│ ├─ root 0 2019-05-09 05:05 neo4j-enterprise
│ │ └─ local-package
│ │ └─
│ └─ root 0 2019-05-15 02:01 neo4j-enterprise
│ └─
└─ -rwxr-xr-x root
├─ root 0 2019-05-09 05:05 neo4j-enterprise
│ ├─ local-package
│ │ └─.sentinel
│ └─.sentinel
├─ root 10156 2019-05-09 05:05 neo4j-enterprise
│ └─ docker-entrypoint.sh
└─ root 1560 2019-05-14 21:36 neo4j-enterprise
└─ Dockerfile
[root@bastion ~]#
Ссылка:https://superuser.com/questions/1086501/list-contents-of-tarball-in-tree-format