私は2つの異なるコンピュータでプロジェクトを進めています。 1つはMac OSX 10.8.3を実行し、もう1つはRed Hat Enterprise Linuxを実行しています。私のMacでは、次のことができます。
vim $(ls -R */*.@(h|cpp) */*/*.@(h|cpp))
すべてが正常です。 Linuxシステムでは失敗します。これらすべては私が期待した通りに正しく機能します。
ls -R */*.@(h|cpp) */*/*.@(h|cpp)
echo $(ls -R */*.@(h|cpp) */*/*.@(h|cpp))
export myfilelist=$(ls -R */*.@(h|cpp) */*/*.@(h|cpp))
echo $myfilelist
しかし、
vim $(ls -R */*.@(h|cpp) */*/*.@(h|cpp))
破損したファイル名のセットを生成します。
^[[00m^[[00mevent_builder/include/eb_service.h^[[00m" [New DIRECTORY]
または
:ls
1 %a "^[[00m^[[00mevent_builder/include/eb_service.h^[[00m" line 1
2 "^[[00mevent_builder/include/EventBuilder.h^[[00m" line 0
理由を知っている人はいますか?
ベストアンサー1
ls
出力色を指定するエイリアス(または関数)があります。type -a ls
何をしますか?代わりに使用
vim $(command ls ...)
しかし: 解析されないls
努力する
shopt -s nullglob globstar
printf "%s\n" **/*.{h,cpp}