私はこのような構造に単純化することができるコマンド、実行しようとしています:置換コマンドに標準入力/出力をリダイレクトする
echo "A,B" | cp $(sed -e 's/A,//') $(sed -e 's/,B//')
をしかし、私は右の置換コマンドの入力/出力を取得して苦労しています。 sedの :上記のコードを実行する は、このエラーメッセージを生成し、標準入力に読み取りエラー:入力/出力エラー
私はこの代わりに実行すると:
echo "A,B" | cp <(sed -e 's/A,//') <(sed -e 's/,B//')
コマンドが終了しません。
私はここで間違っていますか?
私は次のような仕事をしながら、1つのライナーを持っています: 1つのコマンドの出力を取り出し、複数の異なる方法で処理し、結果をさらに別のコマンドの入力パラメーターとして使用します。 'sed'が実際に入力を得ているようです: ' echo "123" | ** –
両方のプロセス置換は、 'cp'が実行されているシェルからの標準入力を継承します('ので、 'cp'と' sed'の3つがパイプから読み込まれます。 'cp'は標準入力を無視するので、' sed'が最初に実行されるようにスケジュールされ、入ってくる文字列を読むことができるのはOSに任されます。 – chepner