美文网首页
(二)awk命令详解

(二)awk命令详解

作者: GoodTekken | 来源:发表于2024-05-14 15:00 被阅读0次
    1. ls -l | awk 'NR>1 {print $5}'
    • 作用:列出当前目录下每个文件的大小(以字节为单位)。
    • 解释:解释:ls -l 列出详细的文件信息,awk 'NR>1 {print $5}' 从第二行开始打印第 5 列(即文件大小),忽略第一行(总计行)。
    1. 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
    1. ls -l | awk 'NR>1{total=total+$5} BEGIN {total=0} END{print total}'
    • 作用:计算所有文件的总大小,并在最后打印总大小。
    • 解释:BEGIN {total=0} 初始化变量 total 为 0,NR>1{total=total+$5} 从第二行开始处理,每行将文件大小累加到 totalEND{print total} 在处理完所有行后打印总大小。
    1. 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 并打印当前的 totalEND{print "END"} 在处理完所有行后打印 "END"。
    1. 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 条指令相同。
    1. 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 的输出进行文件大小的处理和统计,区别在于是否初始化和打印一些附加信息,以及字段分隔符的设置。

    相关文章

      网友评论

          本文标题:(二)awk命令详解

          本文链接:https://www.haomeiwen.com/subject/yzvmfjtx.html