Use um loop for em bash
. Você pode se tornar um teste inofensivo primeiro:
#!/bin/bash
for f in *.csv; do
if [ "$f" != 'A.csv' ]; then
echo cat A.csv "$f" \> "$f.new"
fi
done
Isso permite que você veja o que será executado, mas na verdade não o executa.
Observe que chamei o arquivo de saída $f.new
. Você não pode garantir que o cat
será executado antes de o shell começar a sobrescrever o arquivo. Então, eu recomendo que você faça isso, ou até mesmo escreva melhor os arquivos em outro diretório:
mkdir combined
for f in *.csv; do
if [ "$f" != 'A.csv' ]; then
echo cat A.csv $f \> "combined/$f"
fi
done
E, claro, assim que estiver satisfeito, remova o eco (e o caractere >
):
cat A.csv "$f" > "combined/$f"