如何使用shell列出所有文件并将数字放在它们前面

时间:2014-01-17 21:06:23

标签: bash shell

我想计算我目录中的所有文件并将数字放在它们前面,并在新行中,例如:

file.txt nextfile.txt example.txt

,输出为:

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

等等。 我正在尝试使用:ls -L |

2 个答案:

答案 0 :(得分:2)

如果安装了nl,则可以执行此操作:

ls -1 | nl

注意带有现代shell(通常是内置的),不需要-1部分。这也适用于以下解决方案。)

或者使用awk:

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

或者使用单个awk命令:

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

cat

cat -n <(ls -1)

答案 1 :(得分:1)

您可以在printf中使用内置for loop来执行此操作:

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