Saya memiliki skrip yang menampilkan teks stdout
. Saya ingin melihat semua output ini di terminal saya, dan pada saat yang sama saya ingin memfilter beberapa baris dan menyimpannya dalam file. Contoh:
$ myscript
Line A
Line B
Line C
$ myscript | grep -P 'A|C' > out.file
$ cat out.file
Line A
Line C
Saya ingin melihat output dari perintah pertama di terminal, dan menyimpan output dari perintah kedua dalam sebuah file. Pada waktu bersamaan. Saya mencoba menggunakan tee
, tetapi tanpa hasil, atau lebih baik, dengan hasil terbalik .
/dev/stderr
itu biasa./dev/tty
(artinya terminal saat ini) juga akan berfungsi di sini, dan itu standar .tee /dev/tty
berfungsi luar biasa untuk persyaratan saya harus mencetakstdout
skrip ke terminal dan untuk pipa itu kestdin
perintah lain juga! Terima kasih! :-)Atau dengan substitusi proses (ksh93, zsh atau bash):
Dengan zsh:
sumber
/dev/fd/3
dapat diganti dengan>(cat 1>&3)
Inilah cara lain dengan
sed
:Secara default,
sed
mencetak setiap baris sehingga dalam hal ini stdout akan sama dengan stdin (yaitu Anda akan melihat seluruh outputmyscript
pada layar).Selain itu, semua baris yang cocok
PATTERN
akan ditulisw
ulangout.file
sumber
Anda tidak menentukan bagaimana Anda menggunakan perintah tee tetapi ini harus bekerja:
setidaknya itu berfungsi di server saya beberapa menit yang lalu ...
sumber