1

私はignore.txtファイルを持っています:

cat ignore.txt
clint

私がする時:

pip freeze | grep -v -f ignore.txt

私は得る:

GitPython==0.3.2.RC1  
Markdown==2.2.1  
async==0.6.1  
clint==0.3.1  
gitdb==0.5.4  
legit==0.1.1  
push-to-wordpress==0.1  
python-wordpress-xmlrpc==2.2  
smmap==0.8.2 

しかし、私がそうするとき:

pip freeze | grep -v clint

正しい出力が得られます:

GitPython==0.3.2.RC1
Markdown==2.2.1
async==0.6.1
gitdb==0.5.4
legit==0.1.1
push-to-wordpress==0.1
python-wordpress-xmlrpc==2.2
smmap==0.8.2

grepおよびコマンドラインツールを使用してこれを実現するにはどうすればよいですか?

Clarfication Edit: cygwinでウィンドウを使用しているので、これはGNU grep 2.6.3(grep --versionから)だと思います

4

1 に答える 1

1

あなたの構文は正しく見え、私のシステムで動作します。ファイルに問題がある可能性がありignore.txtます。特に、次のことを確認してください。

  • フィルタリングしようとしている単語の前後に、先頭または末尾のスペース、タブなどはありません(上記のケントが提案したように)
  • ファイルの行末はUnixです
  • ファイルは単一の改行で終了します

後者について、SingleUnixSpecificationは次のように述べています。

pattern_fileのパターンは、で終了する必要があります<newline>

つまり、ターミネータがないファイル、またはターミネータが異なるファイル(CR LFなど)が予期しない動作をする可能性があります(ただし、システムに依存する場合があります)。

于 2013-03-12T23:51:08.817 に答える