일기를 정렬하는 방법?

일기를 정렬하는 방법?

저널 항목에는 연도 없이 월과 일만 있으며 형식이 지정되어 있지만 %D_%M.tex잘못된 정렬 및 잘못된 형식의 파일 이름으로 인해 잘못된 순서로 색인이 생성되었습니다. sort 명령을 통해 저널 항목을 정렬(이전 항목에서 새 항목으로 또는 그 반대로)하려면 어떻게 호출해야 합니까? 핵심은 기수 정렬입니다. 이 토론에 주목하세요.여기, 그러나 그 중 아직 열려 있는 것은 무엇입니까? 어떤 기수 정렬 알고리즘을 사용하고 언제 사용합니까? 장점과 단점은 무엇입니까?

정렬을 알고 있다면 여기서 멈추세요. 다음 섹션은 작은 작업 예제와 예상 출력으로 저널링을 재현하려는 사람들을 위한 것입니다.

출력 오류

 $ ls Days/ |sort -M 
 12_4.tex 
 29_3.tex 
 3_4.tex

예상 출력

 29_3.tex 
 3_4.tex 
 12_4.tex 

작은 예(기수 -bug를 주문하세요)

$ ls Days/
12_4.tex  29_3.tex  3_4.tex
$ cat Makefile 
.PHONY: all
all:   days.tex  

days.tex: $(wildcard Days/*.tex)
  ls Days/*.tex | awk '{printf "\\input{%s}\n", $$1}' > days.tex
$ make; pdflatex diary.tex
$ cat diary.tex
\documentclass{article}         
\begin{document}     
\input{days}
\end{document}

관련된

  1. Wikipedia의 기수 정렬여기.

답변1

또 다른 방법은 파일 이름을 바꾸는 것입니다.

for FILE in Days/*
do
      DAY=`cut --delimiter '_' --fields 1 ${FILE}`
      MONTH=`cut --delimiter '_' --fields 2 ${FILE} | cut --delimiter '.' --fields 1
      NEWFILE=${MONTH}_${DAY}.tex
      cp ${FILE} ${NEWFILE}
done

touch또는 명령을 사용할 수 있습니다 ls -1t.

관련 정보