Apakah sudah ada skrip / program / utilitas yang tersedia untuk persyaratan berikut secara optimal?
someCommand |
tee >(grep "pattern" > LinesWhichMatch) |
grep -v "pattern" > LinesWhichDoesNotMatch
text-processing
grep
tee
balki
sumber
sumber
awk
tetapi pada titik apakah itu mengevaluasi>
? Jika dievaluasi setiap kali persyaratan berlaku, Anda akan mendapatkan dua file satu-baris ...>
mencetak semua output ke file, menimpa file yang ada. Itu tidak dievaluasi sedemikian rupa sehingga akan menghasilkan setiap baris baru menimpa keluaran lama dari contoh yang samaawk
. Artinya, jika ada beberapa kecocokan, file "kecocokan" akan berisi setiap kecocokan yang dipisahkan olehOFS
. Perbedaan antara>
dan>>
ada dalam perawatan file yang ada.Berikut adalah
sed
contohnya:Catatan:
w
perintah sed akan menimpa file yang ada setiap kali skrip dijalankan, tetapi hanya jika perintah tulis tertentu dipicu; karenanyarm
sumber
sed -n '/PATTERN/p;//! w file-not' infile >file-yes
Anda dapat menambahkan file dalam awk:
atau lebih pendek:
sumber