gpt4 book ai didi

bash - 如何在现有的 txt 文件中用 Bash 编写第二列

转载 作者:行者123 更新时间:2023-12-04 10:44:22 25 4
gpt4 key购买 nike

我需要提取父目录的 ID 名称并将其放入制表符分隔的文本文件中。然后我需要提取该文件夹内容的名称,并将其与我第一次提取的 ID 名称放在同一行。本质上,第 1 列应该列出父目录的名称,第 2 列应该列出该目录中第一个文件的名称,第 3 列应该是下一个文件的名称,依此类推。

/路径/到/文件夹/ID/

pwd | xargs echo | awk -F "/" '{print $n; exit}' >> Text.txt

其中“n”是所需父文件夹的位置(在本例中为 ID)。这工作正常,并将诸如“ID001”之类的内容写入我的 Text.txt 文件。

我再次尝试相同的小技巧,使用我的密码作为 xargs 的输入,列出该文件夹的内容,并将名称写入我的 Text.txt 文件:
pwd | xargs echo | awk -F "/" '{print $7; exit}' >> Text.txt | pwd | xargs echo | xargs ls | xargs echo >> Text.txt

但不是
ID001 file1 file2

我得到
file1 file2
ID001

这是 大部分 可以预料,给定命令。我很困惑为什么我的文件名被附加到第一行而不是最后一行。我能找到的唯一相关文章是 this for writing a specific column to a CSV ,但这并不是我想要的。

最佳答案

findawk管道可能是你想要做的:

$ ls tmp
a b

$ find tmp -print | awk '{sub("^[^/]+/",""); printf "%s%s", sep, $0; sep="\t"} END{print ""}'
tmp a b

YMMV 如果您的文件名当然包含制表符或换行符。

关于bash - 如何在现有的 txt 文件中用 Bash 编写第二列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59777568/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com