我有从 1 到 n 的文件,如下所示:
sim.o500.1
sim.o500.2
.
.
.
sim.o500.n
每个文件只包含一行。现在我想按从 1 到 n
的顺序连接它们。
我尝试了 cat sim.o500.* > out.dat
。遗憾的是,如果例如,这不起作用n
大于 9,因为这会连接 sim.o500.1
后跟 sim.o500.10
而不是 sim。 o500.1
后跟 sim.o500.2
。
如何使用数字顺序遍历文件名?
最佳答案
由于 *
以非数字排序方式扩展,您最好使用 seq
自己创建序列:这样,10
会在 9
等之后出现。
for id in $(seq $n)
do
cat sim.o500.$id >> out.dat
done
请注意,我使用 seq
以便您可以使用变量来指示序列的长度。如果这个值恰好是固定的并且事先已知,您可以直接使用范围扩展编写 n
值,例如:for id in {1..23}
。
关于linux - 在 Linux 上使用 cat 连接有序文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29389980/