Bash不会列出所有带有ls的文件



我有一个bash代码,我需要列出路径的文件并保存在文件

processVerification(){
    ls $1 > testFiles
}

文件夹中有文件

transaction-2012-01-20.csv
transaction-2012-01-21.csv
transaction-2012-01-22.csv
transaction-2012-01-23.csv
transaction-2012-01-24.csv
transaction-2013-01-24.csv
transaction-2013-02-24.csv

,当我调用processVerification文件夹=/home/文件夹/事务- 2012 *命令= "猫"processVerification $folder $command

$ cat testFiles

我只有transaction2012-01-20 .csv,我需要所有的文件。

但是我只需要2012年的事务,我创建processVerification,因为我需要通过50个不同的文件夹,该命令是因为在一些文件夹中我有。csv,而在其他文件夹中我有。csv。Bz2和其他的。csv.gz

和每个文件夹中的文件是不同的

您编辑了您的帖子,现在错误是有意义的。当你像这样调用processVerification时:

processVerification /home/folder/transactions-2012*

将所有的transaction -2012*文件传递给processVerification(),但在该函数中只查看第一个参数。试着这样来查看所有的参数:

processVerification(){
    ls "$@" > testFiles
}

您可以使用ls -1并将其管道连接到grep

processVerification() {
    ls -1 | grep 'transaction-2012' > testFiles
}

你的问题是,你正在调用processVerification与错误的参数。你应该这样做:

processVerification /home/folder/

:

processVerification /home/folder/transactions-2012*

最新更新