0

sed を使用して 1 行を置き換えたかったのですが、同じ行が 2 行ありました。

$ sed '50s/false/true/p' ./src/com/android/quicksearchbox/SearchableSource.java >SearchableSource.java.1



$ diff SearchableSource.java.1 ./src/com/android/quicksearchbox/SearchableSource.java
50,51c50
<     private static final boolean DBG = true;
<     private static final boolean DBG = true;
---
>     private static final boolean DBG = false;

なんで?欲しかったものを手に入れるにはどうすればいいですか?

4

3 に答える 3

1

p末尾の は「印刷」を意味します。置換が成功した後に行を出力するようにsedに指示しました。-nとにかく、Sedは各行を印刷します( によって指示されていない場合)。あなたが何を望んでいたかを私たちに伝えていないので、最終的なものを削除するか、オプションpを指定してください。-n

于 2013-05-14T08:47:03.587 に答える
0

最後の / ... の後の p を削除して、検索と置換を行い、結果を出力します。

于 2013-05-14T08:46:55.357 に答える
0

コマンドの最後の修飾子pは「印刷」を意味するためです。のデフォルトの動作sedは印刷であるため、両方を取得できます。sed -nデフォルトで印刷しないようにする場合、または を削除する場合に使用しますp

于 2013-05-14T08:47:17.130 に答える