Dalam kasus normal, sed
dapat mengedit aliran dari perintah lain hanya dengan melakukan piping:
./somecommand | sed 's/xx/yy/g'
Namun, perintah sed
yang saya gunakan agak rumit. Sebelumnya, saya mendapat bantuan dalam mengoptimalkan sed
untuk kasus penggunaan tertentu: Optimalkan skrip shell untuk beberapa penggantian sed
Hasil akhirnya adalah untuk kasus penggunaan saya, perintah sed
berikut adalah yang paling optimal:
./somecommand > file
sed -e 's/^/s|/; s/$/|g/;' replacement_list | sed -r -f - -i file
Pada dasarnya, perintah sed
pertama membuat daftar operasi sed dari file dengan pasangan substitusi. Perintah sed
kedua kemudian menggunakan aliran melalui perpipaan dan menggunakan opsi -f
untuk memproses file.
Segalanya telah berubah sedikit sejak itu dan sekarang saya berhasil membuat somecommand
menampilkan hasil di stdout
alih-alih menulis ke file, tetapi saya tidak dapat memikirkan cara untuk menulis ulang rangkaian perintah di atas dengan benar. Bagian kesulitannya adalah perintah sed
kedua sudah menggunakan aliran dari perintah sed
pertama.
Satu hal yang saya coba adalah menetapkan stdout
dari somecommand
ke sebuah variabel dan mencoba memasukkan <<<
ke dalam perintah sed
kedua. Namun, hal itu tidak berhasil.