2014-01-17 38 views
0

我想計算所有文件,我在我的目錄中並將數字放在它們的前面,然後放在新行中,例如:如何列出所有文件,並把它們放在前面,使用外殼

file.txt nextfile.txt example.txt 

和輸出爲:

1.file.txt 
2.nextfile.txt 
3.example.txt 

等。通過在for loop使用內置的printfls -L |

+0

以前問:HTTP:/ /stackoverflow.com/questions/2924251/how-to-number-the-ls-output-in-unix – BenM

+0

@Biglava只是供參考,如果你想創建一個菜單系統以通過編號選擇一個文件,編號ls輸出將是一個不好的方法。 –

回答

2

如果您已經安裝nl你可以這樣做:

ls -1 | nl 

注意與現代貝殼(通常是內置的)-1部分是不需要的。這適用於貝洛W¯¯解決方案太)

或者使用awk:

ls -1 | awk '{print NR, $0}' 

或用單awk命令:

awk '{c=1 ; for (f in ARGV) {print c, f ; c++ } }' * 

或者與cat

cat -n <(ls -1) 
+0

除了busybox ash之外,還有什麼shell有'ls'內置的shell? –

1

你可以這樣做: 我試圖用一些

n=0 
for i in *; do 
    printf "%d.%s\n" $((n++)) "$i" 
done 
相關問題