Bash 向find命令的每一行添加文本

Bash 向find命令的每一行添加文本,bash,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。您可以: find /tmp -type f \( -name '*.txt' \) |cut -

我有一个脚本,我用它来查找并列出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。

您可以:

find /tmp -type f \( -name '*.txt' \) |cut -c14- | nl
但是根据我的经验,
find
命令对管道并不总是非常友好的

所以你也可以这样做:

cd /tmp ; ls *.txt | nl
或者(对于不同的输出布局)

你可以做:

find /tmp -type f \( -name '*.txt' \) |cut -c14- | nl
但是根据我的经验,
find
命令对管道并不总是非常友好的

所以你也可以这样做:

cd /tmp ; ls *.txt | nl
或者(对于不同的输出布局)


尝试将管道命令输出到以下
awk

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

perl
变体

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

尝试将管道命令输出到以下
awk

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

perl
变体

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

但是
find
也会列出子目录中的文件,而
ls
不会列出这些文件。@pfnuesel,这是一个非常正确的注释。。。然而,要让它与
find
一起工作,
cut
命令也需要一些修改才能工作。此外,他可能需要
xargs
进一步处理
find
的输出。尝试不同的方法没有坏处:-)但是
find
也会列出子目录中的文件,而
ls
则不会。@pfnuesel,这是一个非常正确的评论。。。然而,要让它与
find
一起工作,
cut
命令也需要一些修改才能工作。此外,他可能需要
xargs
进一步处理
find
的输出。尝试不同的方法没有坏处:-)