2行のテキストがまだない場合は、ファイルに追加します。この行はファイル内の他の場所にある可能性があります。したがって、通常のパッチは機能しません。追加する行だけを含む単純化されたパッチを作成することは可能ですか?
> Line 1
> Line 2
?これはもはや一般的なパッチのようには感じません。他のソフトウェアが必要だと思いますかpatch
?
ベストアンサー1
パッチの動作方法はそうではありません。このユーティリティは、patch
2 つの既存バージョンのファイルまたはファイルセットで実行されるユーティリティで作成されたパッチを適用します。diff
どちらのバージョンも静的であり、パッチを適用すると、一方のバージョンが別のバージョンに変換されます(双方向が可能)。
lines.in
他のファイル()から完全に欠落しているファイル()の行のみを追加するには、次のように(および)をfile.dat
使用できます。comm
bash
ksh93
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
-v
file.dat
-f file.dat
file.dat
-x -F