热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何在Unix中使用ls-lsh命令仅输出文件大小

本文探讨了如何使用ls-lsh命令排除总大小输出,仅显示文件大小的方法,并提供了几种实现这一目标的解决方案。

我正尝试使用ls -lsh命令仅将文件大小输出到文件中,但该命令还会显示总的大小信息。我希望输出的结果类似这样:

期望输出:
./sample.txt 4.0K
./multisample.txt 4.0K

然而,实际输出却是:
total 8.0K
./test.txt 4.0K
./multitest.txt 4.0K


为了达到预期的输出格式,即每行显示一个文件名及其对应的文件大小(以制表符分隔),您可以尝试以下几种方法:


解决方案


#1 使用stat命令


最直接的方法之一是使用stat命令,它可以提供文件的详细信息,包括大小。此方法返回的是字节单位的文件大小:


stat -c '%n	%s' $LISTNAME

这里,$LISTNAME是一个包含文件名列表的变量。如果文件名中可能包含空格或制表符,但不含换行符,可以使用以下方式处理:


mapfile -t files <<<"$LISTNAME"
stat -c '%n %s' "${files[@]}"

这种方法适用于Bash shell,尤其是版本4及以上。


#2 使用awk过滤输出


如果您的文件名中不会包含空格等特殊字符,可以通过awk命令来过滤掉total行:


ls -1sh | awk '!/^total / { print $2 "\t" $1 }'

对于包含空格或其他特殊字符的文件名,建议使用Perl或Python脚本来实现更精确的控制。


#3 利用du命令


假设使用Bash且文件系统支持GNU工具,可以结合du命令来获取文件大小:


files=(); for f in *; do [[ -f "$f" ]] && files+=("$f"); done
while IFS= read -r -d '' line; do
filename=${line#*"$'\t'"}
size=${line%%"$'\t'*"}
printf '%q\t%s\n' "$filename" "$size"
done <<(du -0sh --apparent-size "${files[@]}")

上述脚本使用printf %q确保即使文件名中含有空格、制表符或换行符,也能正确输出。若需直接输出这些字符,可将%q替换为%s


#4 简单的lsawk组合


最后,如果您只需要一个简单的解决方案,可以尝试:


ls -lh | awk '{print $9 "\t" $5}'

以上方法均能帮助您实现仅输出文件大小的目标,选择适合您具体需求的一种即可。


推荐阅读
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
  • Python自动化处理:从Word文档提取内容并生成带水印的PDF
    本文介绍如何利用Python实现从特定网站下载Word文档,去除水印并添加自定义水印,最终将文档转换为PDF格式。该方法适用于批量处理和自动化需求。 ... [详细]
  • XNA 3.0 游戏编程:从 XML 文件加载数据
    本文介绍如何在 XNA 3.0 游戏项目中从 XML 文件加载数据。我们将探讨如何将 XML 数据序列化为二进制文件,并通过内容管道加载到游戏中。此外,还会涉及自定义类型读取器和写入器的实现。 ... [详细]
  • UNP 第9章:主机名与地址转换
    本章探讨了用于在主机名和数值地址之间进行转换的函数,如gethostbyname和gethostbyaddr。此外,还介绍了getservbyname和getservbyport函数,用于在服务器名和端口号之间进行转换。 ... [详细]
  • 深入理解Shell脚本编程
    本文详细介绍了Shell脚本编程的基础概念、语法结构及其在操作系统中的应用。通过具体的示例代码,帮助读者掌握如何编写和执行Shell脚本。 ... [详细]
  • 本文将介绍网易NEC CSS框架的规范及其在实际项目中的应用。通过详细解析其分类和命名规则,探讨如何编写高效、可维护的CSS代码,并分享一些实用的学习心得。 ... [详细]
  • 本文详细介绍了网络存储技术的基本概念、分类及应用场景。通过分析直连式存储(DAS)、网络附加存储(NAS)和存储区域网络(SAN)的特点,帮助读者理解不同存储方式的优势与局限性。 ... [详细]
  • 本文探讨了如何在iOS开发环境中,特别是在Xcode 6.1中,设置和应用自定义文本样式。我们将详细介绍实现方法,并提供一些实用的技巧。 ... [详细]
  • 本文详细介绍了C语言的起源、发展及其标准化过程,涵盖了从早期的BCPL和B语言到现代C语言的演变,并探讨了其在操作系统和跨平台编程中的重要地位。 ... [详细]
  • 由二叉树到贪心算法
    二叉树很重要树是数据结构中的重中之重,尤其以各类二叉树为学习的难点。单就面试而言,在 ... [详细]
  • 本题要求在一组数中反复取出两个数相加,并将结果放回数组中,最终求出最小的总加法代价。这是一个经典的哈夫曼编码问题,利用贪心算法可以有效地解决。 ... [详细]
  • 本文探讨了在iOS平台上开发BLE(蓝牙低功耗)应用程序时遇到的挑战,特别是如何实现应用在后台模式下仍能持续扫描并连接蓝牙设备。文章提供了具体的配置方法和常见的问题解决方案。 ... [详细]
  • 本文档汇总了Python编程的基础与高级面试题目,涵盖语言特性、数据结构、算法以及Web开发等多个方面,旨在帮助开发者全面掌握Python核心知识。 ... [详细]
author-avatar
穆羽默然
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有