我希望输出按大小,每个文件的类型和没有扩展名的文件名格式化的内容列表。
我尝试过使用ls grep和awk,但无济于事。我不确定如何做到这一点,有人可以帮助我吗?
我正在寻找输出显示如下;
Filename FileSize Extension
Filename FileSize Extension
Filename FileSize Extension
Filename FileSize Extension
等等。
答案 0 :(得分:0)
这里不需要ls
(事实上,有充分理由不使用它;请参阅Why you shouldn't parse the output of ls
)。
作为原生bash:
#!/usr/bin/env bash
for file in *; do # iterate over contents of current directory
[[ -f "$file" ]] || continue # skip things that aren't files
size=$(wc -c <"$file") # collect size
# ...and actually format and print metadata
printf '%20q %20s %q\n' "${file%.*}" "$size" "${file##*.}"
done
在这里,%q
用于确保具有非打印组件的偶数名称被明确地格式化(例如,您可以区分具有空格的名称和带有制表符的名称)。