grep -Eri "drucken" app/views
app/views/meths/_form.html.erb: <li class="hidden-phone"><a onclick="javascript: print();" class="">Methode drucken</a></li>
app/views/clients/show.html.erb: <li><a onclick="javascript: print();" class="" value="drucken">drucken</a></li>
app/views/clients/index.mobile.html.erb: <li class="hidden-xs"><a onclick="javascript: print();" class="">KlientInnen drucken</a></li>
app/views/treatments/index.html.erb: <li><a onclick="javascript: print();" class="" value="drucken">drucken</a></li>
次のタスクを実行できるソリューションを探しています。
grep -Eri "drucken" app/views | xargs INTO_A_FANCY_TOOL_WHICH_REMOVES_THOSES LINES
修正する:
ファイルからこの行を削除したいと思います。
答え1
次のことを試してみましたか?
grep -Eri -l "drucken" app/views | xargs sed -e '/drucken/d' -i
"-l"はgrepにファイル名のみを印刷するように指示し、"-i"はsedにファイルを動的に変更するように指示します。
または、sedを使用してすべてのファイルを繰り返すことができますが、要求された単語が含まれていなくても、すべてのファイルを「接触」します。
find app/views -type f -exec sed -e '/drucken/d' -i {} \;
答え2
探しているようですがgrep -v
?
-v, --invert-match Invert the sense of matching, to select non-matching lines. (-v is specified by POSIX.)
したがって、この行が削除されたgrep -v 'drucken' file1 > file2
行が提供されますfile2
。
または試していないもの
sed -e '/drucken/d' infile > outfile
答え3
これを達成するためにPerl onelinerを使用することができます。
$ cat file
a
b
c
$ perl -i -wne 'if(/b/){print STDOUT $_}else{print}' file
b
$ cat file
a
c