在find命令的每一行添加文本

时间:2013-11-19 20:28:50

标签: bash

我有一个脚本,我用它来查找和列出以tmp文件夹中的.txt结尾的文件

find /tmp -type f \( -name '*.txt' \) |cut -c14-

输出是这样的:

xpto.txt
abc.txt
xyz.txt

但我想在每行的开头添加一个索引

1 - xpto.txt   
2 - abc.txt
3 - xyz.txt

任何人都可以帮助我吗?我还在学习bash,一个月前开始。

2 个答案:

答案 0 :(得分:2)

你可以这样做:

find /tmp -type f \( -name '*.txt' \) |cut -c14- | nl

但根据我的经验,find命令并不总是对管道非常友好。

所以你也可以这样做:

cd /tmp ; ls *.txt | nl

或此(针对不同的输出布局)

cd /tmp ; ls *.txt | grep -n ""

答案 1 :(得分:2)

尝试将命令输出发送到以下awk

awk -v OFS="-" '{print NR, $0}'

perl变体

perl -lne 'print $.,"-",$_'