我有大量文件(约 50000 个文件)。
ls /home/abc/def/
file1.txt
file2.txt
file3.txt
.........
.........
file50000.txt
Run Code Online (Sandbox Code Playgroud)
我想创建一个包含两列的 CSV 文件:第一列提供文件名,第二列提供绝对文件路径,如下所示:
输出.csv
file1.txt,/home/abc/def/file1.txt
file2.txt,/home/abc/def/file2.txt
file3.txt,/home/abc/def/file3.txt
.........................
.........................
file50000.txt,/home/abc/def/file50000.txt
Run Code Online (Sandbox Code Playgroud)
如何使用 bash 命令执行此操作。我尝试使用 ls 并找到
find /home/abc/def/ -type f -exec ls -ld {} \; | awk '{ print $5, $9 }' > output.csv
Run Code Online (Sandbox Code Playgroud)
但这给了我绝对路径。如何获得如上面的output.csv所示的输出
find您可以使用 GNU的选项获取文件名和完整路径-printf:
find /home/abc/def -type f -printf "%f,%p\n"
Run Code Online (Sandbox Code Playgroud)
sort如果您想要排序结果,请通过管道。