0

I have a folder named baypass which contains 2181 files, looks like this (just a few files as an example):

anacovis2_210_summary_betai_reg.out_new
anacovis2_2110_summary_betai_reg.out_new
anacovis2_2111_summary_betai_reg.out_new
anacovis2_2112_summary_betai_reg.out_new

I want to have all of them sorted, so I used

ls -v -1

which did the sorting job for me, but I want to have these sorted files saved in a directory. So when I type "ls -v -1" files become sorted but if I type pwd or ls or any other command they will be unsorted again. So how can I save the sorted files? I want to have them sorted and saved to be able to merge them. The order of files are very important.

  • it sounds like you would be helped by renaming the files such that "anacovis2_210" became "anacovis2_0210", at which point it would sort "naturally" with ls. Are you open to that idea? – Jeff Schaller Sep 11 '17 at 18:49
4

This is the command you need finally if your goal is merging these files in numerical order. Use shell brace expansion.

cat anacovis2_{1..2181}_summary_betai_reg.out_new >> one_file
|improve this answer|||||
  • 1
    Yes, thank you Afshin. I got my desired output. – Anna1364 Sep 11 '17 at 18:53
2

In zsh, you'd do:

files=(*.out_new(n))

(n) being a glob qualifier that causes the glob to be sorted numerically (can also be toggled globally for all globs with set -o numericglobsort).

And then:

do-something-with $files

In bash, ksh93 or mksh (or zsh) you can store the files as listed by that GNU ls in an array with:

eval "list=($(ls -v --quoting-style=shell-always))"
do-something-with "${files[@]}"
|improve this answer|||||
1

You can use an alias:

alias ls='ls -1v'
|improve this answer|||||
  • Thanks @abitmol, well yes I get the them sorted and saved but when I run cat command "cat *>covariable1" it merges files based on unsorted order. – Anna1364 Sep 11 '17 at 18:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.