如何使用 awk 和 sed 将字符插入到输入命令产生的列的字符串中

如何使用 awk 和 sed 将字符插入到输入命令产生的列的字符串中

这是一个适合我的目的的公式——除其他外,它只打印文件,用于尺寸权力1024,2^10–. 涉案文件大小为 1382 字节(1.35基布):

# ls -lh | grep -v '^d' | sed -n '2p' | awk '{print $5, $(NF)}'
1,4K anaconda-ks.cfg

条件申请公式中:

  • 插入 ' '最后的属于第一个柱子的输出;
  • 插入 '信息B最后的属于第一个柱子的输出;
  • 两位小数最接近的值(例如 1,095 = 1,09,1,096 = 1,10);
  • 打印与大小和文件相关的列。

输出至达到一旦条件适用:

# ls -lh | grep -v '^d' | sed <expression> | awk <expression>
1,35 KiB anaconda-ks.cfg

答案1

你应该避免解析输出ls. 而是使用stat命令。

numfmt不要尝试伪造新的数字格式,而是使用coreutils 中的命令。

因此你可以使用这个:

for i in *; do 
  printf "%s %s\n" $(stat -c %s "$i" | numfmt --to=iec-i --suffix=B --format "%.2f") "$i"
done

相关内容