を仕分けしながら、私はディレクトリを列挙していると私は出力がでなければなりません。すなわち、名前でソートするが、「ザ・」をリード無視したいと思います: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」に置き換えます。
私はこの1つを本当に好きです。どのようにして最初のディレクトリの深さ内で作業するのですか? "The Fruit/Apple" - > "Fruit、The/Apple" – jmilloy
ああ、そこに行って、私は\(。* \)/ \ 1を\ \)/ \ 1 – jmilloy
find -mindepth 2 -type d | grep -o [^。/]。* | sed -e 's/^ \([^ /] * \)/ \ 1、/' |並べ替え| sed -e 's/\(。* \)、\/The \ 1 \ /' – jmilloy