/ / Creazione di una matrice di file in una sottocartella: array, linux, bash

Creazione di un array di file in una sottocartella: matrici, linux, bash

Sto cercando di scrivere una sceneggiatura bash per i compitidomanda in cui devo accedere ad alcuni file in una cartella di origine, rimuovere tutti i commenti da loro e inviare i file non commentati (o una copia) a una cartella di destinazione, ecco il mio attuale tentativo:

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

Il problema sembra essere che non sto creando il fileelementi dell'array correttamente, voglio che l'array contenga i nomi dei file nella cartella di origine, qualcuno può indirizzarmi al modo corretto di farlo (preferibilmente senza risolvere l'intero esercizio in quanto dopo tutto sono compiti a casa) /

risposte:

4 per risposta № 1

Cambia questo

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

a

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

2 per risposta № 2

In realtà non è necessario l'array e, per un gran numero di file corrispondenti, è anche più efficiente iterare direttamente sul pattern.

for file in "$source"/*; do