我有一个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时 文件夹= /家庭/文件夹/交易-2012 * 命令=“猫” processVerification $ folder $ command
$ cat testFiles
我只有事务-2012-01-20.csv,我需要所有文件。
但我只需要2012年的交易,我创建processVerification,因为我需要传递50个不同的文件夹,命令是因为在某些文件夹中我有.csv而在其他文件夹中我有.csv.bz2而在其他文件夹中我有.csv 。广州
并且每个文件夹中的文件都是不同的
答案 0 :(得分:4)
您编辑了自己的帖子,现在错误很有意义。当你像这样调用processVerification时:
processVerification /home/folder/transactions-2012*
将所有Transactions-2012 *文件传递给processVerification(),但在该函数中,您只查看第一个参数。试着这样看看所有的args:
processVerification(){
ls "$@" > testFiles
}
答案 1 :(得分:0)
您可以使用ls -1
并将其传递给grep
。
processVerification() {
ls -1 | grep 'transaction-2012' > testFiles
}
您的问题是您使用错误的参数调用processVerification。您应该这样做:
processVerification /home/folder/
不
processVerification /home/folder/transactions-2012*