Linux脚本让我选择文件,linux – 用于选择文件和打印文件大小的Awk脚本
我們在這看……
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=$5;
FNAME=$9;
}
這里最大的困難是awk沒有通過排序原語提供太多,所以這是困難的部分.如果你想要聰明但不是特別有效,那就可以打敗(看看我在a [code-golf] solution所做的糟糕事情).容易(和unixy)做的事情是管道輸出的一部分進行排序,所以…我們為每個文件收集一行到一個大字符串
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";
}
給出類似的輸出
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脚本让我选择文件,linux – 用于选择文件和打印文件大小的Awk脚本的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如果公家的房子老百姓的房盖的好则用这句话
- 下一篇: 花几分钟了解一下新能源小车的特点?