各ステップで切り捨てることなく、複数のコマンドで単一のコマンドの出力を解析するにはどうすればよいですか?
たとえば、
ls -al|grep -i something
「何か」を含むすべての行を次のパイプに渡しますが、条件に一致しないため、パイプ内の他のすべての行が破棄されます。私が欲しいのは、多くのコマンドで独立して単一のパイプで操作できるようにすることです。
この場合、メッセージ本文全体を渡すMuttからのパイプです。これらのそれぞれを多分bash変数にgrep、sed、delete、および割り当てたいです。
最初に必要なのは、変数に「メッセージID」を割り当て、別の変数に「サブジェクト」を割り当てることができるようにすることです。その後、それらを適切なコマンド引数に渡します。
これがどうなるか
MessageBodyFromMutt|grep something -Ax -Bx |grep another thing from the original message| sed some stuff from the original message| cut from here to there
明らかに、上記の行は私が望むことをしません。
これらすべてのコマンドが元のメッセージ本文で動作するようにします。理にかなっているといいのですが
チョラバ、ありがとう。それは私が必要なもののようですが、Muttはteeに続くコマンドの括弧を好みません。私はいくつかのチェーンをテストし、bashで動作しますが、Mutt pipeはそのような問題について不平を言っています。何かお勧め?
—
yarunは
Muttはおそらく実行されて
—
チョロバ
sh
いbash
ますが、ではありません。bashを実行するように構成できますか?または実行しbash -c '...'
ます。
@chorobaわかりました。これが私がやろうとしていることです。「タスクの追加+送信者の電子メールの送信元+」というコマンドがあるので、これを分割しようとしています。「+」はtaskwarriorのタグです。Teeが私にそれをさせてくれると思いますか?私はそれらを貝殻に割り当てることができると考えていましたが、それはティーでは起こらないようです。
—
ヤルンは
オリジナルをgrepし、オリジナルをsedしたい場合。cat original | grep <ENTER> catオリジナル| sed <ENTER>などgrepおよびsedを使用して、開始するデータの例と終了するデータの例を指定すると、より明確になります。
—
barlop
tee
。パイプをフォークします(ただし、変数ではありません)。