linux – 用于选择文件和打印文件大小的Awk脚本

linux – 用于选择文件和打印文件大小的Awk脚本,第1张

概述我正在做家务工作.问题是: Write an awk script to select all regular files (not directories or links) in /etc ending with .conf, sort the result by size from smallest to largest, count the number of files, and pri 我正在做家务工作.问题是:

Write an awk script to select all regular files (not directorIEs or
links) in /etc ending with .conf,sort the result by size from
smallest to largest,count the number of files,and print out the
number of files followed by the filenames and sizes in two columns.
Include a header row for the filenames and sizes. Paste both your
script and its output in the answer area.

我真的在努力通过使用awk来努力工作.这就是我想出来的.

ls -lrs /etc/*.conf |wc –l

将返回数字33,即目录中的.conf文件数.

ls -lrs /etc/*.conf |awk '{print "file_Size"": "  "   ""file_name and Size"": " }'

这将使2列具有目录中.conf文件的名称和大小.

它有效,但我不认为这是他正在寻找的.我有一个愉快的时间.

解决方法 我们在这看……

select all regular files (not directorIEs or links)

到目前为止,你还没有解决这个问题,但如果你在ls -l …的输出中输入,这很容易,请选择

/^-/

因为目录以d开头,符号链接以l开头,依此类推.只有普通旧文件以 – 开头.现在

print out the number of files followed

好吧,计算比赛很容易……

BEGIN{count=0}  # This is not *necessary*,but I tend to put it in for clarity/^-/ {count++;}

要获取文件名和大小,请查看ls -l的输出并计算列数

BEGIN{count=0}/^-/ {  count++;  SIZE=;  Fname=;}

这里最大的困难是awk没有通过排序原语提供太多,所以这是困难的部分.如果你想要聪明但不是特别有效,那就可以打败(看看我在a [code-golf] solution所做的糟糕事情).容易(和unixy)做的事情是管道输出的一部分进行排序,所以…我们为每个文件收集一行到一个大字符串

BEGIN{count=0}/^-/ {  count++  SIZE=;  Fname=;  OUTPUT=sprintf("%10d\t%s\n%s",SIZE,Fname,OUTPUT);}END{   printf("%d files\n",count);   printf("  SIZE    \tfilename"); # No newline here because OUTPUT has it   print OUTPUT|"sort -n --key=1";}

给出类似的输出

11 files  SIZE          filename       673      makefile      2192      houghdata.cc      2749      houghdata.hh      6236      testhough.cc      8751      fasthough.hh     11886      fasthough.cc     19270      HoughData.png     60036      houghdata.o    104680      testhough    150292      testhough.o    168588      fasthough.o

(顺便说一句 – 这里有一个测试子目录,你会注意到它没有出现在输出中.)

总结

以上是内存溢出为你收集整理的linux – 用于选择文件和打印文件大小的Awk脚本全部内容,希望文章能够帮你解决linux – 用于选择文件和打印文件大小的Awk脚本所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1025927.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存