Как я могу рекурсивно создавать выходные файлы, передавая имена каталогов в качестве параметров?

Если вы хотите установитьfdочень быстрый искатель файлов, написанный на Rust (, вы должны установить его, в любом случае это здорово)

fd --type=file. | xargs wc -l | sort -n

В основном fdперечисляет файлы, xargs передаст список файлов вwc(означает количество слов, но передача -l заставит его подсчитывать строки ), затем, наконец, он сортируется от наименьшего количества строк до наибольшее использование sort -n.

2
24.09.2020, 05:58
1 ответ

Вы можете попробовать это, если я не слишком ржавый с bash:

for d in */*; do 
  cal "${d#*/}" "${d%/*}" > "${d%/*}/${d#*/}/${d#*/}-${d%/*}-cal.dat"
done

при условии, что вы находитесь в каталоге с папками года.

Что приводит к:

├── 2019
│   ├── 01
│   │   └── 01-2019-cal.dat
│   ├── 02
│   │   └── 02-2019-cal.dat
│   └── 03
│       └── 03-2019-cal.dat
├── 2020
│   ├── 01
│   │   └── 01-2020-cal.dat
│   ├── 02
│   │   └── 02-2020-cal.dat
│   └── 03
│       └── 03-2020-cal.dat

и catодин из файлов:

cat 01-2019-cal.dat

Выводы (извините за испанскую версию):

     Enero 2019       
do lu ma mi ju vi sá  
       1  2  3  4  5  
 6  7  8  9 10 11 12  
13 14 15 16 17 18 19  
20 21 22 23 24 25 26  
27 28 29 30 31 

Хитрость заключается в использовании расширения параметра .

2
18.03.2021, 23:02

Теги

Похожие вопросы