私のバックグラウンドを持つperlスクリプトの中でgrepを使用しています。perlでgrepを使って正規表現にマッチする
grep -r --include=*.txt -e '[a-zA-Z0-9]*\.[a-zA-Z]*$' $dir -n >> test.txt;
ファイル名で終わる行をフィルタリングしようとしています。
例: FILE1.TXTが含まれています
This is a file about file.txt
One of the files is sample.c
Another example is test.doc
しかし、私のgrepコマンドは何も返しません:
This is a file about file.txt
This file is about algorithms.
File.txtbis contains several functions.
There are also several files.
One of the files is sample.c
Another example is test.doc
が、私は私のgrepは、次の行を返すことを期待しています。
"$"記号を削除した場合、grepコマンドは正規表現と一致しないにもかかわらずファイルのすべての行を返します。
また、0以上ではなく1つ以上の文字を除外することをお勧めしますが、grepには*しかありません。 grepで "+"を1文字以上使用できますか?
backticksでgrepを使用する際に制限はありますか?
'ファイル名で終わる行をフィルタリングする ' - どういう意味ですか?拡張?任意の拡張子? – fugu
私は説明を更新しました。私は任意の拡張名を参照しています。 –
'-e'を' -P'や '-E'に変更してください。 – CWLiu