c++打印树形结构_linux/unix中如何使用命令行打印系统或代码目录树形结构

本文介绍了如何在Linux环境中通过tree命令和find、awk组合命令来打印目录的树形结构。内容包括使用tree命令展示不同深度的目录结构,以及使用find和awk命令结合的方式,特别是如何调整命令来打印多级目录树。
摘要由CSDN通过智能技术生成

在日常的开发过程中,有时需要打印出代码的树状目录结构。

让我们看看如何使用Linux命令来打印目录的树形结构

Linux命令行 打印文件系统树结构有两种方式:

  • 使用Linux tree命令
  • 使用Linux find、awk和sed命令的组合命令。

使用linux tree命令打印目录树形结构

这里以 wordpress 博客的源代码做测试;

  1. 显示当前目录深度为1 的树形目录结构:

➜ tree -dL 1

.

├── wp-admin

├── wp-content

└── wp-includes

...

-d

仅列出目录

-L level

目录树的最大显示深度

显示当前目录深度为2的树形目录结构:

➜ tree -dL 2

.

├── wp-admin

│ ├── css

│ ├── images

│ ├── includes

│ ...

├── wp-content

│ ├── ew_backup

│ ├── languages

│ ├── plugins

│ ...

└── wp-includes

├── ID3

├── IXR

├── Requests

...

使用linux find 和 awk命令打印目录树形结构

➜ find . -type d | awk -F'/' '{

if(NF==2){print "|-- " $2 }else if(NF==3) {print "| |--" $3}}'

这个命令和tree命令一样,是一个打印深度为2的目录树结构。

|-- wp-admin

| |--css

| |--images

| |--js

| ...

|-- wp-includes

| |--blocks

| |--ID3

| |--SimplePie

| ...

|-- wp-content

| |--upgrade

| |--wflogs

| |--plugins

| ...

69be989e2ed0caafc1e8e9e8a77fc9b3.png

命令解释:

  • 首先,列出当前目录下的所有目录结构;

➜ find . -type d

.

./wp-admin

./wp-admin/css

./wp-admin/css/colors

...

./wp-includes

./wp-includes/blocks

./wp-includes/ID3

...

  • 然后,使用linux awk命令根据 “/” 分割行数据;

awk -F'/' '{

if(NF==2) {

print "|-- " $2

}else if(NF==3) {

print "| |--" $3

}

}'

当分隔字段的数目为2,表示树结构的根目录,则打印“|-”;

当分隔字段的书目为3,则表示树结构的叶节点,打印“| |–”;

好的,您可以打印一个两级树形目录结构。

如果我们需要打印多级树目录结构呢?难道要写多个if/else吗?

当然不。

如何使用linux find和awk组合命令打印多级树目录结构

find . -type d | awk -F'/' '{

depth=3;

offset=2;

str="| ";

path="";

if(NF >= 2 && NF < depth + offset) {

while(offset < NF) {

path = path "| ";

offset ++;

}

print path "|-- "$NF;

}

}'

depth:要打印的层数

36aa964acdcad46079d76678da9d554a.png

可以通过修改 depth来实现要打印的树形目录层级。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值