如何在unix中对ls输出进行编号?

发布于 2024-09-02 21:41:45 字数 228 浏览 4 评论 0原文

我正在尝试编写一个格式为“id file_absolute_path”的文件,该文件基本上递归地列出文件夹中的所有文件,并为列出的每个文件提供标识符,如 1,2,3,4。

我可以使用以下命令递归地获取文件的绝对路径:

ls -d -1 $PWD/**/*/*

但是,我无法从 ls 命令的输出中给出标识符。我确信这可以使用 awk 来完成,但似乎无法解决它。

I am trying to write a file with format - "id file_absolute_path" which basically lists down all the files recursively in a folder and give an identifier to each file listed like 1,2,3,4.

I can get the absolute path of the files recursively using the following command:

ls -d -1 $PWD/**/*/*

However, I am unable to give an identifier from the output of the ls command. I am sure this can be done using awk, but can't seem to solve it.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

赠佳期 2024-09-09 21:41:45

通过 cat -n 管道输出。

Pipe the output through cat -n.

零崎曲识 2024-09-09 21:41:45

假设 x 是您的命令:

x | awk '{print NR, $0}'

将对输出行进行编号

Assuming x is your command:

x | awk '{print NR, $0}'

will number the output lines

┈┾☆殇 2024-09-09 21:41:45

两个可能的命令:

ls -d -1 $PWD/**/*/* | cat -n
ls -d -1 $PWD/**/*/* | nl

nl 将数字放入文件行。

我希望这也能澄清。

Two posible commands:

ls -d -1 $PWD/**/*/* | cat -n
ls -d -1 $PWD/**/*/* | nl

nl puts numbers to file lines.

I hope this clarifies too.

梦幻之岛 2024-09-09 21:41:45

有一个名为 nl 的工具可以实现这一点。

ls -la | NL

There is a tool named nl for that.

ls -la | nl

冬天旳寂寞 2024-09-09 21:41:45

如果您执行ls -i,您将获得索引节点号,它非常适合用作 ID。

使用索引节点的唯一潜在问题是,如果您的文件夹跨越多个文件系统,因为索引节点只能保证在文件系统中是唯一的。

If you do ls -i, you'll get the inode number which is great as an id.

The only potential issue with using inodes is if you folder spans multiple file systems as an inode is only guaranteed to be unique within a file system.

从来不烧饼 2024-09-09 21:41:45

ls -d -1 $PWD/**// | awk ' {x = x + 1} {print x " " $0} '

ls -d -1 $PWD/**// | awk ' {x = x + 1} {print x " " $0} '

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文