Team, I asked reverse of this question and it was answered here. how to exclude printing in bash a line that has no sub directory path compared to other similar paths?
in this question I want to do reverse of it.
I want reverse of this below.
cat file | sort | tac |awk '{sub("/[^/]+$","")} index(prev,$0"/") != 1{print} {prev=$0}'
where file
actually represents the output of a find
command:
find src/services/ -type f -name 'BUILD.bazel'
and so contains:
$ cat file
src/services/sam-agent/BUILD.bazel
src/services/sam-agent/auth/BUILD.bazel
src/services/sam-agent/certs/BUILD.bazel
src/services/sam-agent/server/BUILD.bazel
src/services/jam-controller/BUILD.bazel
src/services/jam-controller/api/BUILD.bazel
src/services/jam-controller/client/BUILD.bazel
src/services/wam-controller/api/BUILD.bazel
src/services/wam-controller/api/client/BUILD.bazel
src/services/wam-controller/api/server/BUILD.bazel
The desired command when run on the above input should output
src/services/sam-agent
src/services/jam-controller
src/services/wam-controller
i.e. expected prints only parents and no sub dirs:
src/services/sam-agent #< should be printed
src/services/sam-agent/auth
src/services/sam-agent/certs
src/services/sam-agent/server
src/services/jam-controller #< should be printed
src/services/jam-controller/api
src/services/jam-controller/client
src/services/wam-controller/api #< should obe printed
src/services/wam-controller/api/client
src/services/wam-controller/api/server
tried answer 1 and got below. still shows sub dir and not just src/services/rams
cat /tmp/t.log | sort | tac | awk '{if ($0 in seen) print; else {sub("/[^/]+$", ""); seen[$0]}}'
src/services/rams/store/postgres
src/services/rams
sample t.log
src/services/rams
src/services/rams/integration
src/services/rams/keys
src/services/rams/migrations
src/services/rams/mocks
src/services/rams/server
src/services/rams/smoke
src/services/rams/store
src/services/rams/store/postgres
src/services/rams/store/postgres/mocks
src/services/rams/tools/keyrotate
src/services/rams/tools/secretmanager
src/services/rams/vault