在子文件夹

时间:2017-01-24 19:53:41

标签: arrays linux bash

我尝试为家庭作业问题编写一个bash脚本,我需要访问源文件夹中的某些文件,删除所有注释并将未注释的文件(或副本)发送到目标文件夹,这是我目前的尝试:

#!/bin/bash
destination="$1"
source="$2"
mkdir "$destination"
files=(${$("$source"/*)})
for file in "${files[@]}" 
do  
    grep -E -v "^[[:space:]]*[//]" "$file">> "/$destination/$file"
done

问题似乎是我没有正确创建数组元素,我希望数组包含源文件夹中文件的名称,任何人都可以指导我这样做的正确方法(最好没有解决整个练习,因为它毕竟是家庭作业)/

2 个答案:

答案 0 :(得分:4)

更改此

files=(${$("$source"/*)})

files=("$source"/*) # grab name of all files under $source dir and store it in array

答案 1 :(得分:2)

实际上根本不需要数组,对于大量匹配文件,直接迭代模式也更有效。

for file in "$source"/*; do