shとgrep番号のみ

shとgrep番号のみ

問題があり、考えられる解決策を見つけようとしています。シェン。 Bashが利用可能な場合は、次のコードが機能します。

ls /a|grep ^[0-9]

残念ながら、shの場合はそうではありません。はい、shを使用する必要があります。 :) 実行sh私は取得

ls /a |grep ^[0-9]
[0-9]: not found
Usage: grep -hblcnsviw pattern file . . .

^を削除すると、コードは機能しますが、数字を含むファイルではなく数字で始まるファイルのみが必要です。たとえば、次のようなファイルが必要です。

12.00.2
2.222.1234.12

grepのマニュアルページから^

現在、私の実装は次のように行われます。

ls /a|grep -v [a-z]|grep -v [A-Z]

これにより、文字を含むすべてのファイルが削除されますが、ファイルが.123.33の場合は引き続き表示されます。

ベストアンサー1

次のことがあなたに役立つでしょう:

ls /a | egrep "^[0-9]"

これは@Anthonsのフィードバックによってはegrep使用されなくなり、-Eトグルを通常のコマンドとして使用できますgrep

ls /a | grep -E "^[0-9]"

@Stephaneからのフィードバックに基づいています拡大するこの場合、正規表現(ERE)も必要ありません。本当に重要なのは、^[0-9]問題のあるバージョンを使用しても解釈されないようにする引用です。/bin/shしたがって、次の方法が問題を解決する最も簡単な方法になります。

ls /a | grep "^[0-9]"

-または-

ls /a | grep '^[0-9]'

おすすめ記事