在像Python這樣的高級語言中這樣做肯定更容易。
這不是一個排序問題;這是一個訂購問題。因此,您不能使用Unix排序命令。
不可避免地,你將需要4次反正,所以我會做兩種:
$ find /tmp/alex -name config.xml ; \
> find /tmp/alex -name *-as-jdbc.xml ; \
> find /tmp/alex \(\! -name *-as-jdbc.xml -a -name *-jdbc.xml \) ; \
> find /tmp/alex \(-type f -a \! -name config.xml -a \! -name *-jdbc.xml \)
/tmp/alex/config.xml
/tmp/alex/a-as-jdbc.xml
/tmp/alex/z-as-jdbc.xml
/tmp/alex/fa-jdbc.xml
/tmp/alex/cleardown.xml
/tmp/alex/paster.xml
/tmp/alex/router.xml
或者使用grep:
$ find /tmp/alex -type f > /tmp/aaa
$ grep /config.xml /tmp/aaa ; \
> grep -- -as-jdbc.xml /tmp/aaa ; \
> grep -- -jdbc.xml /tmp/aaa | grep -v -- -as-jdbc.xml ; \
> egrep -v '(?:config.xml|-jdbc.xml)' /tmp/aaa
/tmp/alex/config.xml
/tmp/alex/a-as-jdbc.xml
/tmp/alex/z-as-jdbc.xml
/tmp/alex/fa-jdbc.xml
/tmp/alex/cleardown.xml
/tmp/alex/paster.xml
/tmp/alex/router.xml
我沒有清楚地看到你想要的模式,你可以嘗試澄清? –
要遵循的模式正是我在示例中放置的順序,我希望LS輸出總是按如下排序:首先是config.xml,然後是「* .as-jdbc.xml」,然後是「-jdbc.xml」(不包括模式「.as-jdbc」)等等...... – ivoruJavaBoy
那麼貼膜和清除呢? –