ls -l | awk 'NR>1 {print $5}'
- 作用:列出当前目录下每个文件的大小(以字节为单位)。
- 解释:解释:
ls -l
列出详细的文件信息,awk 'NR>1 {print $5}'
从第二行开始打印第 5 列(即文件大小),忽略第一行(总计行)。
ls -l | awk 'NR>1{total=total+$5;print total;}BEGIN {total=0}'
- 作用:逐行累加文件大小,并在每行打印当前的总大小。
- 解释:
BEGIN {total=0}
初始化变量total
为 0,NR>1{total=total+$5;print total;}
从第二行开始处理,每行将文件大小累加到total
并打印当前的total
。
ls -l | awk 'NR>1{total=total+$5} BEGIN {total=0} END{print total}'
- 作用:计算所有文件的总大小,并在最后打印总大小。
- 解释:
BEGIN {total=0}
初始化变量total
为 0,NR>1{total=total+$5}
从第二行开始处理,每行将文件大小累加到total
,END{print total}
在处理完所有行后打印总大小。
ls -l | awk 'NR>1{total=total+$5;print total;}BEGIN {print "BEGIN"} END{print "END"}'
- 作用:在处理之前打印 "BEGIN",逐行累加文件大小并打印当前总大小,最后打印 "END"。
- 解释:
BEGIN {print "BEGIN"}
在开始处理前打印 "BEGIN",NR>1{total=total+$5;print total;}
从第二行开始处理,每行将文件大小累加到total
并打印当前的total
,END{print "END"}
在处理完所有行后打印 "END"。
ls -l | awk -F "="'NR>1{total=total+$5;print total;}BEGIN {print "BEGIN"} END{print "END"}'
- 作用:类似于第 4 条指令,但使用 "=" 作为字段分隔符。
- 解释:由于
-F "="
指定了字段分隔符为 "=",但ls -l
的输出中并没有 "=",因此字段分隔符的更改对结果没有影响。BEGIN {print "BEGIN"}
,NR>1{total=total+$5;print total;}
和END{print "END"}
的功能与第 4 条指令相同。
ls -l | awk -F "[=']"'NR>1{total=total+$5;print total;}BEGIN {print "BEGIN"} END{print "END"}'
-
作用:类似于第 4 条指令,但使用正则表达式 [='] 作为字段分隔符。
-
解释:
-F "[=']"
指定字段分隔符为 "=" 或 "'",由于ls -l
的输出中也没有这些符号,字段分隔符的更改对结果同样没有影响。BEGIN {print "BEGIN"}
,NR>1{total=total+$5;print total;}
和END{print "END"}
的功能与第 4 条指令相同。总结来说,这些命令主要是利用 awk 对 ls -l 的输出进行文件大小的处理和统计,区别在于是否初始化和打印一些附加信息,以及字段分隔符的设置。
网友评论