Home > Enterprise >  paste a list of files in a range in bash
paste a list of files in a range in bash

Time:08-30

I have a list of files named "LL1.txt" to "LL1180.txt" but I am only interested in files from 1 to 50 to paste them in one file. I tried using:

seq 1 50
for n in $(seq $1 $2); do 
    f="LL$n.txt"
    if [ -e $f ]; then
        paste "$f" > LL$1_$2.txt
    fi
done 

but it did not work.

CodePudding user response:

You need to give all the filenames as arguments to paste so it will combine them.

paste FILE{1..50}.txt > LL1_50.txt

Note that you can't use variables in the braced range. See Using a variable in brace expansion range fed to a for loop if you need workarounds.

CodePudding user response:

for n in `seq $start $stop` ; do
if [ -e "$LL$n.txt" ] ; then   
cat LL$n.txt >> output_file  
fi
done

or if you enjoy harder way:

cat > output_file <<< `cat  LL{1..50}.txt`
  • Related