我列出的目錄,我想以按名稱排序,而忽視龍頭「」,即輸出應該是:UNIX命令 - 忽略「的」排序時
Apple
The Banana
Orange
,而不是
Apple
Orange
The Banana
這樣做的最佳方法是什麼?
我列出的目錄,我想以按名稱排序,而忽視龍頭「」,即輸出應該是:UNIX命令 - 忽略「的」排序時
Apple
The Banana
Orange
,而不是
Apple
Orange
The Banana
這樣做的最佳方法是什麼?
ls | sed -e 's/^The \(.*\)/\1, The/' | sort | sed -e 's/\(.*\), The$/The \1/'
此解決方案,但是是傻,不會在任何情況下工作(例如有雙空格)
find . -type d | grep -o "[^./].*" | sed 's/^The/ /' | sort | sed 's/ /The /'
其實我要去把那寫下來。
我懷疑是下面會做你想要它做的事情:
ls -d * | sed 's/^The /\t/' | sort -b | sed 's/^\t/The /'
我會解釋。 ls -d *
列出了所有的目錄。 sed -r 's/^The /\t/'
使用製表符(空格佔位符)替換所有前導的「The」,sort -b
排序,忽略前導空格(製表符),並且sed 's/^\t/The /'
再次用「The」替換所有這些前導製表符。
不太確定這是否有效......您替換爲佔位符的前導空間似乎會導致所有這些目錄浮動到頂部 – William 2010-12-06 05:24:48
啊。我試圖簡化帖子的內容。我正在剝奪領先地位./並且只關心領先的。然後我認爲領先的空間被忽略。現在編輯... – jmilloy 2010-12-06 05:28:25