Unix команда для вывода списка всех файлов путем группировки и сортировки по типу и имени файла - PullRequest
0 голосов
/ 25 мая 2020

В каталоге много файлов, а вывод можно сгруппировать и отсортировать, как показано ниже: сначала файлы exe без расширения, затем sql файлы, заканчивающиеся на "body", затем sql файлы, заканчивающиеся на "spe c ", затем другие sql файлы. Затем" sh ", затем" txt "файлы.

 abc
 1_spec.sql
 1_body.sql
 2_body.sql
 other.sql
 a1.sh
 a1.txt

find . -maxdepth 1 -type f ! -name "*.*" 
find . -type f  -name "*body*.sql" 
find . -type f  -name "*spec*.sql"

Getting difficult to combine all and sorting group with order.

1 Ответ

0 голосов
/ 25 мая 2020

с ls, grep и sort вы можете сделать что-то вроде этого сценария, который я взломал вместе:

#!/bin/sh

ls | grep -v '\.[a-zA-Z0-9]*$' | sort
ls | grep '_body.sql$' | sort
ls | grep '_spec.sql$' | sort
ls | grep -vE '_body.sql$|_spec.sql$' | grep '.sql$' | sort
ls | grep '.sh$' | sort
ls | grep '.txt$' | sort

нормальный ls:

$ ls -1
1_body.sql
1_spec.sql
2_body.sql
a1.sh
a1.txt
abc
bar.sql
def
foo.sh
other.sql
script
$

сортировка скрипт:

$ ./script
abc
def
script
1_body.sql
2_body.sql
1_spec.sql
bar.sql
other.sql
a1.sh
foo.sh
a1.txt
$
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...