shell - concatenate ordered files using cat on Linux -
i have files 1 n, following:
sim.o500.1 sim.o500.2 . . . sim.o500.n
each file contains 1 line. want concatenate them in order 1 n
.
i tried cat sim.o500.* > out.dat
. sadly not work if e.g. n
larger 9, because concatenates sim.o500.1
followed sim.o500.10
and not sim.o500.1
followed sim.o500.2
.
how can loop through file names using numeric order?
since *
expands in non-numeric-sorted way, you'd better create sequence seq
: way, 10
coome after 9
, etc.
for id in $(seq $n) cat sim.o500.$id >> out.dat done
note use seq
able use variable indicate length of sequence. if value happens fixed , known beforehand, can directly use range expansion writing n
value like: for id in {1..23}
.
Comments
Post a Comment