grepを使用してcwd内のすべての実行可能ファイルを一覧表示したいので、次を使用しました。
ls -F -a | grep "[*]$"
そしてそれは機能しますが、なぜ次のコマンドが機能しないのですか?これは同等である必要があります。
ls -F -a | grep -E "[*]\>"
奇妙なことに、終了文字として標準の文字(grep -E "[a]>"など)を使用すると、問題なく機能します。
検索ユーティリティを使用できます。これは、lsの出力を解析するよりも堅牢です。
たとえば、実行ビットがユーザーに設定されている現在のディレクトリ内のファイルを一覧表示します。
find . -maxdepth 1 -type f -perm -u=x
ls -F | grep -E "[*]\>"
*
これは、「単語」文字ではなく、意味がない直後に単語の終わりの境界を探すため、期待どおりには機能しません。
ls -F -a | grep "[*]$"
指定されたとおりに終わるすべての行を生成*
します。意味あり。
@Adamのアドバイスに注意する必要があります:の出力を解析しないでくださいls
。