Linux Shell编程实战---计算特定目录下前10个大文件

计算特定目录下前10个大文件

在给定的目录下,想知道有哪些大文件存在,取前十个,按文件大小排行

(1)、使用awk来实现

#!/bin/bash

path=/root/shell

find $path-type f | awk ‘{

var=$0

"ls -l "var |getline var1

split(var1,a," ")

filename=a[9]

filesize=a[5]

printf("%s %s\n",filename,filesize)| "sort -k2 -n -r|head -10"

}

上面的写法在文件较多的时候可能会引起内存溢出。

改进一下如下:

#!/bin/bash

path=/root/shell

echo >r2.txt

find $path-type f | awk ‘{

var=$0

"ls -l "var |getline var1

split(var1,a," ")

filename=a[9]

filesize=a[5]

printf("%s %s\n",filename,filesize)

}

‘>r2.txt

cat r2.txt|sort -k2 -n -r | head -10

(2)、使用while来实现

#!/bin/bash

path=/root/shell

echo >r1.txt

find $path-type f|while read line

do

filename=`ls -l $line|awk ‘{print $9}‘`

filesize=`ls -l $line|awk ‘{print $5}‘`

echo $filename $filesize>>r1.txt

done

cat r1.txt|sort -k2 -n -r | head -10

时间: 2024-11-16 09:03:49

Linux Shell编程实战---计算特定目录下前10个大文件的相关文章

Linux Shell编程实战---统计特定文件中单词的词频

方法1:使用sed Shell>cat a1.txt 123a123,555 456.333 566.555!88,thisis a good boy. Shell>cat a1.txt|sed 's/[[:space:]|[:punct:]]/\n/g'|sed '/^$/d'|sort|uniq -c|sort -n-k1 -r 2 555 1 this 1 is 1 good 1 boy 1 a123 1 a 1 88 1 566 1 456 1 333 1 123 Shell>

Linux Shell 编程实战技巧

目前,越来越多的企业应用会部署在 Linux 系统上的,而 Linux Shell 脚本可以极大地帮助我们完成这些应用的运维任务.这使得 Linux Shell 开发技能成为开发人员的一项重要的.有竞争力的技能.本文就笔者的实际开发经验,以 Korn Shell 为例分享了脚本开发中的常见问题及相关技巧. 避免定时任务脚本的常见问题 很多脚本在实际使用的时候往往是以定时任务的方式运行,而非手工运行.但是实现同样功能的脚本在这两种运行方式下可能遇到的问题不尽相同. 以定时任务方式运行的脚本往往会遇

SHELL编程练习-获得指定目录下的所有文件及文件夹的大小

一.目的编写一个脚本,可以获得指定目录下的所有文件及文件夹的大小.输出的样式与 ls -lh 命令相同.命令执行示例,其中和 ls -lh 命令输出的唯一区别是目录的大小:1.1.ls -lh命令的输出(注意目录大小) [[email protected] ~]# ls -lh /root/dir1/ total 24M drwxr-xr-x 3 root root 4.0K Feb 6 13:54 dir2 drwxr-xr-x 2 root root 4.0K Feb 6 13:55 dir

linux网络编程之面试题----------统计目录下所有目录和文件个数

题目如下: 实现linux下tree的单一功能[只打印目录个数和文件个数(不包含隐藏文件)] 首选我们介绍几个相关的linux 系统API 函数名 函数描述 函数声明 opendir 打开一个目录,成功返回一个DIR*类型指针,失败返回NULL DIR* opendir(const char* name) readdir 读取打开的目录下的子成员,成功返回结构体指针,否则返回NULL struct dirent* readdir(DIR* dir) closedir 关闭已打开的目录.成功返回0

Linux Shell编程实战---Shell中的文本切片技术

Shell中的文本切片技术 在shell中竟然也是有字符串切片这个东西存在的,一直在python中运用切片,下面记录一下shell中切片的用法. (1).替换变量内容中的部分文本 $var="This is a line of text" $ echo${var/line/REPLACED} This is aREPLACED of text" line被替换成REPLACED. (2).指定字符串的起始位置和长度来生成子串 语法如下: ${variable_name:sta

Linux Shell编程实战---以逆序形式打印行

以逆序形式打印行 使用awk或tac可以搞定. tac这个命令的名称其实就是反过来书写的cat. (1).使用tac 该命令的语法如下: tac file1file2 - 它也可以从stdin中读取: $ seq 5 |tac 5 4 3 2 1 在tac中,\n是默认的行分隔符.但我们也可以用 -s "分隔符"选项指定自己的分隔符. (2).使用awk 使用awk的实现方式如下: $ seq 9 |\ awk '{lifo[NR]=$0 } END{for(lno=NR;lno>

Linux Shell编程实战---shell实现图片下载神器

$ cat dowonload_image.sh  #!/bin/bash ######################################### #图片下载器                              # #script_name: dowonload_image.sh         # #author:weixiaoxin write by 2017-09-20   #      #########################################

Linux Shell编程实战---解析文本中的邮件地址和url

解析文本中的邮件地址和url (1).使用场景 从给定的文件中解析出所需要的文本是从事文本处理时常见的一项任务.诸如电子邮件地址.URL等都能够借助适合的正则表达式找出来.我们通常需要从一个包含大量无关字符及单词的电子邮件客户列表或HTML网页中将电子邮件地址解析并提取出来. (2).正则匹配 匹配一个电子邮件地址的正则表达式如下: [A-Za-z0-9._][email protected][A-Za-z0-9.]+\.[a-zA-Z]{2,4} 匹配HTTP URL的正则表达式如下: htt

《跟老男孩学Linux运维之shell编程实战》-第五章 shell脚本的条件测试

本文的知识点是关于shell脚本的条件测试的相关内容. 通常在shell脚本中我们需要做各式各样的条件判断,比如,测试一个文件是否存在.是否为文件或目录.是否 具有执行权限等等,所以在shell脚本中,条件判断还是至关重要的.接下来我们进入正题:shell脚本的条件测试. 1.在bash编程中,条件测试常用的语法形式如下表: 提示: 语法1中的test命令和语法2中的[]是等价的.语法3中的[[]]双中括号为扩展的test命令. 语法4中的(())常用于计算. 在双中括号[[]]中可以使用通配符