[英]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.