8

diffファイルの途中にある段落と、単一の段落を含むファイルの間を確認したい。

段落は60file の行にありfoo、 filebarにはその段落のみが含まれていますが、わずかな違いがある可能性があります。

を使用してその段落を抽出できsedますsed -n 60,60p foo。でこれをどのように使用できdiffますか?

以下は機能しません

sed -n 60,60p foo | diff bar # diff: missing operand after `foo`
diff bar `sed -n 60,60p foo` # diff: extra operand `in`

できます:

sed -n 60,60p foo >> tempfile; diff bar tempfile

パイプを使用して一時的にどこかに保管する必要のない解決策はありますか?

4

2 に答える 2

14

ファイル引数として「-」を使用するdiffと、stdin から読み取ります。

  sed -n 60,60p foo | diff bar -
于 2012-08-27T06:26:44.817 に答える
11

プロセス置換を使用できます。

diff bar <(sed -n 60,60p foo)

これは、2 つのプロセスからの出力を比較するためにも使用できます。

diff <(sed -n 60,60p bar) <(sed -n 60,60p foo)
于 2012-08-27T09:17:08.920 に答える