質問: stdoutに転送する前に手動で行を選択/選択解除 grep interactivelyへの方法はありますか?これは、パイプを追加して処理したいところからたくさんの行があり、必要な行を手動で指定するオプションがあることを意味しますか?この例を考えてみましょう:#name food music adam cake rock bert fruit folk caesar cake rock doris cake folk emil fruit rock francis fruit folk gertrud cake rock ... このファイルを取得し、次のような行を使用してフィルタリングできますcat people.txt | grep -v "^#" | grep "^.*fruit.*folk" ...すべての人にベジフォークパーティーに招待してもらいます。これをさらに自動化すると:cat people.txt | grep -v "^#" | grep "^.*fruit.*folk" | ??? | peopleinviterscript ...いくつか食べたい???パイプで、招待状が送信される前にユーザーを選択/選択解除するオプションを提供します。私が知らないbash/zshにはすでにそのようなツールがありますか?
回答: moreutilsにはvipeがあり、パイプラインの一部として通常のテキストエディター(viなど)を実行するだけです。削除しない行はstdoutに書き戻されます。 (ただし、一般に、一時ファイルにリダイレクトしてそのファイルを編集しても同じ結果が得られます。)