Linux脚本让我选择文件,linux – 用于选择文件和打印文件大小的Awk脚本
我們?cè)谶@看……
select all regular files (not directories or links)
到目前為止,你還沒(méi)有解決這個(gè)問(wèn)題,但如果你在ls -l …的輸出中輸入,這很容易,請(qǐng)選擇
/^-/
因?yàn)槟夸浺詃開(kāi)頭,符號(hào)鏈接以l開(kāi)頭,依此類(lèi)推.只有普通舊文件以 – 開(kāi)頭.現(xiàn)在
print out the number of files followed
好吧,計(jì)算比賽很容易……
BEGIN{count=0} # This is not *necessary*,but I tend to put it in for clarity
/^-/ {count++;}
要獲取文件名和大小,請(qǐng)查看ls -l的輸出并計(jì)算列數(shù)
BEGIN{count=0}
/^-/ {
count++;
SIZE=$5;
FNAME=$9;
}
這里最大的困難是awk沒(méi)有通過(guò)排序原語(yǔ)提供太多,所以這是困難的部分.如果你想要聰明但不是特別有效,那就可以打敗(看看我在a [code-golf] solution所做的糟糕事情).容易(和unixy)做的事情是管道輸出的一部分進(jìn)行排序,所以…我們?yōu)槊總€(gè)文件收集一行到一個(gè)大字符串
BEGIN{count=0}
/^-/ {
count++
SIZE=$5;
FNAME=$9;
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";
}
給出類(lèi)似的輸出
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
(順便說(shuō)一句 – 這里有一個(gè)測(cè)試子目錄,你會(huì)注意到它沒(méi)有出現(xiàn)在輸出中.)
總結(jié)
以上是生活随笔為你收集整理的Linux脚本让我选择文件,linux – 用于选择文件和打印文件大小的Awk脚本的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 如果公家的房子老百姓的房盖的好则用这句话
- 下一篇: 花几分钟了解一下新能源小车的特点?