我有一个包含文件的文件夹,
LS
atom0
atom10
atom11
atom12
.
.
atom19
atom1
atom20
atom21
atom2
....
.....
每个文件都有两列。我希望两个按名称文件的升序列列出所有文件,即
paste atom0 atom1 atom2 atom3 ...atom8 atom9 atom10 atom11 atom12.....atom20....> data
粘贴原子*>数据
给出数据,但顺序是ls命令的默认顺序。即
atom0 atom1 atom11 atom12 . .atom19 atom1 atom20 atom21 atom2 ....
如何将此顺序更改为粘贴命令的升序?
答案 0 :(得分:1)
根据Jonathan Leffler的评论ls -v
,如果支持则最简单。
如果您的ls
支持-v
选项。
ls -v atom* | xargs paste > data
如果没有,可以使用排序。
find . -name 'atom*' | sort -n -k1.7 | xargs paste > data
7来自./atomNNNN,所以跳过前6个字符。如果你有一个不同的前缀(而不是" atom"),请更新-k1.7以反映它。
没有排序
$ find . -name 'atom*'
./atom
./atom0
./atom1
./atom10
./atom11
./atom12
./atom3
./atom9
使用sort
$ find . -name 'atom*' | sort -n -k1.7
./atom0
./atom1
./atom3
./atom9
./atom10
./atom11
./atom12