行番号を含まないパッチ、可能でしょうか?

行番号を含まないパッチ、可能でしょうか?

2行のテキストがまだない場合は、ファイルに追加します。この行はファイル内の他の場所にある可能性があります。したがって、通常のパッチは機能しません。追加する行だけを含む単純化されたパッチを作成することは可能ですか?

> Line 1
> Line 2

?これはもはや一般的なパッチのようには感じません。他のソフトウェアが必要だと思いますかpatch

ベストアンサー1

パッチの動作方法はそうではありません。このユーティリティは、patch2 つの既存バージョンのファイルまたはファイルセットで実行されるユーティリティで作成されたパッチを適用します。diffどちらのバージョンも静的であり、パッチを適用すると、一方のバージョンが別のバージョンに変換されます(双方向が可能)。

lines.in他のファイル()から完全に欠落しているファイル()の行のみを追加するには、次のように(および)をfile.dat使用できます。commbashksh93

comm -23 <( sort lines.in ) <( sort file.dat ) >>file.dat

追加された行がソートされます。

次の行の順序を維持するソリューションlines.in

grep -v -x -F -f file.dat lines.in >>file.dat

これは、()に存在しない()のすべての行をgrep見つけて追加するために使用されます。完全な行は固定文字列()で比較されます。lines.in-vfile.dat-f file.datfile.dat-x -F

おすすめ記事