簡體   English   中英

bash:首先對“查找”輸出文件進行排序

[英]bash : sort “find” output files first

我試圖獲取所有* .tex文件的相對路徑列表,以獲取正確的編譯列表。

我用以下方式構造目錄:每個包含其他節的* .tex文件都有一個同名文件夾,這使結構看起來像這樣:

./section1/ 
./section2/
./section1.tex
./section2.tex

因此,在每個文件夾內有其他* .tex文件,最后還有其他目錄,以便我保持干凈的層次結構。

我想獲取以下輸出並將其打印到文件中(假設為“ toc.txt”):

./section1.tex

./section1/subsection1_1.tex
./section1/subsection1_2.tex
./section1/subsection1_3.tex


./section2.tex

./section2/subsection2_1.tex
./section2/subsection2_2.tex
./section2/subsection2_3.tex

我嘗試了以下命令:

find . -name '*.tex' -print | sort

但這給了我以下結果:

./section1/subsection1_1.tex
./section1/subsection1_2.tex
./section1/subsection1_3.tex
./section1.tex
./section2/subsection2_1.tex
./section2/subsection2_2.tex
./section2/subsection2_3.tex
./section2.tex

我不得不說我真的不想手動為每行重新排序以獲取此toc文件...

你有個主意嗎? :-)

它與整理順序有關。 這將起作用。

find . -name '*.tex' -print | LC_COLLATE=C sort

而且,只是為了好玩,這有點瘋狂,但是如果您只是更換. 用字母中較高的順序排序,但在文件名中找不到的順序排序,然后反轉轉換,即可正常工作。 例如

find . -name '*.tex' -print | sed -e 's/\./aaaa/g' | sort | sed -e 's/aaaa/\./g'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM