gpt4 book ai didi

julia - 如何在类似 awk 的方法中对 Julia 目录中的某些文件长度求和?

转载 作者:行者123 更新时间:2023-12-02 02:40:30 25 4
gpt4 key购买 nike

我经常通过 unix shell 实用程序处理文本,Julia 中是否有类似的功能? julia 中的类似过程是否会在 awk 中编写更少的代码?

例如通过linux shell显示目录中文件长度的总和

ls -l /etc/*.conf  | awk '{s += $5} END{print s}'

我在 Julia 所做的是
using Glob
n=0
for file in glob("*conf","/etc")
global n += stat(file).size
end
println(n)

Julia 中有没有像 shell 的 awk 那样工作的函数,从 ls -l 的输出中读取,并对第 5 列求和?

最佳答案

CSV.jl可以解析 CLI 输出,以便您可以处理类似于 awk 的数据.只要确保输出是统一的:更喜欢像 find 这样的工具至 ls .

using CSV
# awk like behavior
read2(x; args...) = CSV.read(x; header=false, delim=' ', ignorerepeated=true, args...)
reduce(+, read2(`find /etc -maxdepth 1 -name "*conf" -printf "%s\n"`)[:,1])

如果可能,完全在 Julia 中工作会更好:)
using Glob
mapreduce(file -> stat(file).size, +, glob("*conf","/etc"))

关于julia - 如何在类似 awk 的方法中对 Julia 目录中的某些文件长度求和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59833421/

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