実行するたびに何かを返すプログラムがあります。これらのコンテンツの一部は、以前の実行中に表示された可能性があります。
foo
bar
baz
次の実行では、2つの「前行」と1つの「新しい行」が表示されることがあります。
bar
baz
house
このコマンドで以前に見られなかったコンテンツをフィルタリングしてファイルに保存して、次のように終了できますか?
foo
bar
baz
house
このコマンドは非常に不規則に実行されるため、実行に数分から数日かかることがあります。
答え1
sponge
パッケージからインストールした場合moreutils
:
$ printf '%s\n' foo bar baz > log # first call
$ printf '%s\n' bar baz house | grep -v -F -x -f log | sponge -a log # subsequent calls
$ cat log
foo
bar
baz
house