2012-02-06 9 views
2

ファイルがあり、タイムスタンプで始まらない行をすべてgrepしたいと思います。私は、次の正規表現を使用してみましたが、それはうまくいきませんでした:regexの演算子がありません

cat myFile | grep '^(?!\[0-9\]$).*$' 

任意の他の提案や、私がここで間違っているかもしれない何か?

+4

*が動作しませんでした* ...あなたのコンピュータから煙が出ましたか? –

+0

これはhttp://unix.stackexchange.com/に属しますが、オフトピックオプションの間には見つかりません。 http://superuser.com/に投票しました – BlackBear

答えて

7

grep -v "<pattern>" file 

(先頭に#を持っていないのは、あなたがをコメントしていないシェルスクリプト内のすべての行をgrep検索したいとしましょう)あなたは使用することができます:

grep -v "^\s*#" file.sh 
+1

唯一の*正しい*答え:パターンを否定しようとしないで、一致結果を否定します。 +1 –

0

あなたはそれが最も簡単に使用されるだけではgrepを使用し、notオペレータを必要としない:パターンを見つける:

grep '^[0-9]' myFile 
0

これを試してみてください:

cat myFile | grep '^\d\d\d\d-\d\d-\d\d \d\d:\d\d:\d\d' 

これは、あなたのタイムスタンプがであると仮定しパターンdddd-dd-dd dd:dd:ddですが、それがあなたのタイムスタンプに一致するものに変更します。

注:CMDチェーンのいくつかの種類を使用している場合を除き、grep pattern fileは簡単な構文ところで

です:あなたはタイムスタンプ行をしたいたりしたい場合は、二重の負のご利用には、私はわからないなります非タイムスタンプ行。

単に否定するには、このようなgrepの-vオプションを使用しないのはなぜ
関連する問題