特殊式を使用したgrep

特殊式を使用したgrep

.c私のディレクトリにはいくつかのバイナリファイルといくつかの拡張ファイルがあります。

ここで、出力は次のように使用します。ls

arrays.c basic0 basic0.c fromfb fromfb.c oute oute.c segmen.c simp simp.c

ここではバイナリファイルだけをフィルタリングしたいので、次のようにします。

ls |grep -v .c

このコマンドはすべてのファイルをリストし、grepI を使用して .c で終わらないファイルを除くファイルをインポートします。

私が期待したのは

basic0
fromfb
oute
simp

しかし、私が得たもの

fromfb
oute
simp

basic0バイナリがありません。これは何の問題ですか?

ベストアンサー1

~によるとman grep

期間。単一文字と一致します。

したがって、grep .c次の文字と一致します。c

あなたは探しているか、grep -v \.cより良いものかもしれませんgrep -v '\.c$'

どこ

  • \.脱出の特別な意味。
  • c
  • $行末(lsにパイプされるとファイル名を出力)

ワイルドカードが示すように、grep -vF .cこの-Fフラグを使用してgrepに正規表現ではなく単純な文字列でargを使用するように指示することもできます。

おすすめ記事